> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/hi/developer-guide/developer-guide/profiling.md).

# Workflow प्रोफाइलिंग

Chrome-संगत प्रोफाइलिंग ट्रेस के साथ Workflow निष्पादन समय मापें और बाधाएँ खोजें।

आप अपने Workflow के निष्पादन समय को मापने और प्रदर्शन की बाधाओं की पहचान करने के लिए प्रोफाइलिंग सक्षम कर सकते हैं। प्रोफाइलिंग ट्रेस विज़ुअलाइज़ेशन के लिए Chrome के बिल्ट-इन ट्रेसिंग टूल के साथ संगत हैं।

## उदाहरण Workflow

इस गाइड में दिए गए स्क्रीनशॉट उदाहरण के तौर पर निम्नलिखित workflow का उपयोग करते हैं; इसमें 2x ऑब्जेक्ट डिटेक्शन, डायनामिक क्रॉपिंग, एक Google Gemini कॉल, और कई विज़ुअलाइज़ेशन चरण शामिल हैं:

<figure><img src="https://4229620234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoO0Ceoy9R0lHDZATcPyh%2Fuploads%2Fgit-blob-1d6acedcd335ef7c260cef8595ad06f80273b716%2Fworkflow-profiling-example.webp?alt=media" alt="Example workflow in the Roboflow editor"><figcaption><p>नीचे दिए गए प्रोफाइलिंग स्क्रीनशॉट के लिए उपयोग किया गया उदाहरण Workflow</p></figcaption></figure>

## Inference SDK के साथ प्रोफाइलिंग

HTTP क्लाइंट के माध्यम से workflows चलाते समय प्रोफाइलिंग सक्षम करने के लिए, आपको पहले self-hosted चलाना होगा [Inference Server](https://docs.roboflow.com/deployment/self-hosted/inference-server) के साथ `ENABLE_WORKFLOWS_PROFILING=True` env variable. फिर आप सेट करके HTTP क्लाइंट के माध्यम से workflows चलाते समय प्रोफाइलिंग सक्षम कर सकते हैं `enable_profiling=True`:

```python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration

client = InferenceHTTPClient(
    api_url="http://localhost:9001", # Serverless Cloud API प्रोफाइलिंग का समर्थन नहीं करता
    api_key="API_KEY"
).configure(InferenceConfiguration(api_key_transport="header"))

result = client.run_workflow(
    workspace_name="workspace-name",
    workflow_id="workflow-id",
    images={"image": "YOUR_IMAGE.jpg"},
    enable_profiling=True
)
```

जब प्रोफाइलिंग सक्षम होती है, तो ट्रेस फ़ाइलें स्वतः सहेजी जाती हैं `./inference_profiling/` में डिफ़ॉल्ट रूप से। प्रत्येक ट्रेस फ़ाइल का नाम होता है `workflow_execution_tack_{timestamp}.json`.

## प्रोफाइलिंग ट्रेस देखना

प्रोफाइलिंग ट्रेस Chrome Tracing Format में सहेजी जाती हैं। उन्हें देखने के लिए:

1. Chrome खोलें और यहाँ जाएँ `chrome://tracing/`.
2. क्लिक करें **लोड करें** और अपनी ट्रेस फ़ाइल चुनें (जैसे, `workflow_execution_tack_2026_03_30_10_46_04.json`).
3. प्रत्येक workflow चरण के निष्पादन समय की जाँच करने के लिए टाइमलाइन दृश्य का उपयोग करें।

किसी भी span पर क्लिक करने से उसकी अवधि, श्रेणी, और arguments दिखते हैं - जैसे कि किस block का `step_execution` आप देख रहे हैं:

<figure><img src="https://4229620234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoO0Ceoy9R0lHDZATcPyh%2Fuploads%2Fgit-blob-137d29561237d184a31937396bde007609180006%2Fworkflow-profiling-trace.webp?alt=media" alt="Chrome tracing timeline with a selected step"><figcaption></figcaption></figure>

अधिकांश समय 2x ऑब्जेक्ट डिटेक्शन (process 57) और Gemini कॉल (process 78) पर खर्च हुआ। यदि आप ज़ूम इन करें, तो आप ऑब्जेक्ट डिटेक्शन चरणों के बीच अन्य चरण (detection offset, dynamic cropping, visualization, आदि) देख सकते हैं:

<figure><img src="https://4229620234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoO0Ceoy9R0lHDZATcPyh%2Fuploads%2Fgit-blob-d9dfe6a02d28e5bcbb72fc4b796e793ed75bb454%2Fworkflow-profiling-trace-2.webp?alt=media" alt="Chrome tracing aggregated statistics view"><figcaption></figcaption></figure>

## मुख्य विवरण

| विवरण            | मान                                                                  |
| ---------------- | -------------------------------------------------------------------- |
| **ट्रेस format** | JSON, Chrome के `chrome://tracing/` टूल के साथ संगत                  |
| **आउटपुट स्थान** | `./inference_profiling/` डिफ़ॉल्ट रूप से (कॉन्फ़िगर किया जा सकता है) |
| **फ़ाइल नामकरण** | `workflow_execution_tack_{YYYY_MM_DD_HH_MM_SS}.json`                 |

## सीमाएँ

* **कंपाइलेशन ओवरहेड**: Workflow compilation से 10-25ms की latency जुड़ती है, जो छोटे/तेज़ मॉडलों के लिए महत्वपूर्ण है जहाँ GPU inference समय तुलनीय होता है। यह ओवरहेड वीडियो प्रोसेसिंग के लिए केवल शुरुआत में एक बार होता है।
* **निष्पादन इंजन latency**: Workflows Execution Engine प्रति फ़्रेम लगभग 1-2ms नाममात्र latency जोड़ता है।
* **डायनामिक blocks**: dynamic blocks का उपयोग करने वाले self-hosted deployments में pydantic model rebuilding के कारण प्रति अनुरोध +100-140ms latency हो सकती है। यह hosted platform या video processing पर लागू नहीं होता, जहाँ compilation एक बार होता है।
* **मॉडल block प्रभुत्व**: आम तौर पर निष्पादन समय का लगभग 95% मॉडल inference में ही खर्च होता है, जिसमें अतिरिक्त डेटा transformations और metadata management शामिल हैं।

## प्रदर्शन युक्तियाँ

* Workflow definitions डिफ़ॉल्ट रूप से 15 मिनट के लिए cache की जाती हैं। उपयोग करें `use_cache=False` में `run_workflow()` यदि आवश्यक हो तो caching को बायपास करने के लिए।
* वीडियो प्रोसेसिंग के लिए, compilation overhead नगण्य है क्योंकि यह केवल शुरुआत में एक बार होता है।
* अपने workflows की प्रोफाइलिंग करें ताकि यह पता चल सके कि बाधाएँ model inference, data transformations, या workflow orchestration में हैं या नहीं।
