[Javascript] फ़ायरबग प्रोफाइलर आउटपुट को समझना


Answers

अगर मैं चीजों को ठीक से समझता हूं तो यह कुछ ऐसा ही होता है:

पहली पंक्ति पर आप देखेंगे कि खुद का समय "केवल 0.006 एमएमएस" है इसका अर्थ है कि भले ही उस समारोह में खर्च किया गया समय 783.506 एमएमएस था, उसमें से अधिकतर उस फ़ंक्शन से बुलाए गए कार्यों के अंदर बिताए गए थे।

जब मैं फ़ायरबग का उपयोग कोड को अनुकूलित करता हूं तो मैं "सबसे अच्छा समय" को कम करने की कोशिश करता हूं जो कि सबसे ज्यादा बुलाया जाता है। (स्पष्ट रूप से किसी भी अनावश्यक फ़ंक्शन को भी पूरी तरह से हटाने के लिए कॉल की जांच)

Question

मैं कुछ जावास्क्रिप्ट कार्यक्षमता मुद्दों के स्रोत को बेहतर ढंग से समझने के लिए फ़ायरबॉग के प्रोफाइलर का उपयोग करने की कोशिश कर रहा हूं, लेकिन मैं आउटपुट के द्वारा थोड़ा भ्रमित हूं।

जब मैं कुछ कोड प्रोफ़ाइल प्रोफ़ाइल रिपोर्ट करता है (464.323 एमएस, 26,412 कॉल) मुझे संदेह है कि 464.323 एमएस उन 26,412 कॉल के लिए निष्पादन समय का योग है।

हालांकि, जब मैं विस्तृत परिणाम में नीचे चला जाता हूं तो मैं व्यक्तिगत परिणामों को 464.323 एमएस से अधिक औसत निष्पादन समय के साथ देखता हूं, उदाहरण के लिए उच्चतम औसत समय के साथ परिणाम निम्न विवरण की रिपोर्ट करता है:

Calls: **1**
Percent: **0%**
Own Time: **0.006 ms**
Time: **783.506 ms**
Avg: **783.506 ms**
Min: **783.506 ms**
Max: **783.506 ms**

एक अन्य परिणाम रिपोर्ट:

Calls: **4**
Percent: **0.01%**
Own Time: **0.032 ms**
Time: **785.279 ms**
Avg: **196.32 ms**
Min: **0.012 ms**
Max: **783.741 ms**

इन दोनों परिणामों के बीच समय परिणाम की राशि 464.323 से अधिक है

तो, ये विभिन्न संख्याओं का क्या मतलब है? मुझे किस पर विश्वास होना चाहिए?




मैं समझता हूं कि यह कैसे काम करता है ... कुल प्रोफाइलर का समय 'स्वयं समय' कॉलम का योग है हालांकि, आप देख सकते हैं कि कुछ एकल समय मान कुल प्रोफाइलर समय से अधिक हो सकते हैं। वे ओवरटाइम जावास्क्रिप्ट के बाहर बिताए गए थे, उदा। एक प्लगइन कॉल में यदि आपका जेएस फ़ंक्शन, उदाहरण के लिए प्लगिन कॉल करता है, और जेएस पर लौटने के लिए प्लगइन फ़ंक्शन का इंतजार करता है, तो उन प्रतीक्षा के समय को कुल प्रोफाइलर टाइम द्वारा नहीं बताया जाएगा, लेकिन टाइम कॉलम में शामिल किया जाएगा।