5

में जावास्क्रिप्ट गिनती फ़ंक्शन कॉल क्रोम प्रोफाइल (डेवलपर टूल्स) से जानकारी प्राप्त करना संभव है कि कितनी बार फ़ंक्शन कहा जाता है?
मैंने पाया कैसे कोड में यह करने के लिए:क्रोम प्रोफाइलर

console.count("Function called"); 

और कुछ वास्तव में वर्ष (वर्ष 2011 और आसपास) विषयों और सुविधा का अनुरोध this one की तरह। लेकिन प्रत्येक फंक्शन कॉल के लिए गिनती रिकॉर्ड करना संभव नहीं है, लेकिन कोई नई जानकारी नहीं है।

कभी-कभी आप इसे समझते हैं कि कुछ कॉल एक सेकंड में कई बार बुलाए जाते हैं और केवल एक बार बुलाए जाने पर प्रदर्शन में काफी सुधार करेंगे (निष्पादन के लिए कुछ देरी जोड़ें)। इस कार्यों को ट्रैक करने के लिए काउंटर आवश्यक है।

+1

यदि आप नए क्रोम में टाइमलाइन प्रोफाइलर चलाते हैं (देव चैनल निश्चित रूप से, शायद स्थिर भी हो), तो आपके स्रोत कोड में कोड प्रति एमएस में रन टाइम होगा devtools में दिखाया गया ब्लॉक। साथ ही, क्या यह आपकी अनुकूलन प्रक्रिया में पहला कदम है? क्या होगा यदि फ़ंक्शन को 100 बार कहा जाता है लेकिन कुल समय पर इसका प्रभाव प्रति सेकंड 1 एमएस से कम है? – wOxxOm

+2

धन्यवाद। मुझे पता है, लेकिन वास्तव में कॉल गिनती जानना चाहते हैं। – Makla

उत्तर

5

आप होगा देखने फ़ंक्शन कॉल समय/सीपीयू प्रोफाइलर में गिनती नहीं के बाद से क्रोम देव उपकरण में मानक प्रोफाइलर एक नमूना प्रोफाइलर है।

एक नमूना प्रोफाइलर एक पूर्वनिर्धारित अंतराल पर निष्पादन स्टैक स्नैपशॉट लेता है। जब ऐसा करने जा रहा है, तो जेएस निष्पादन रोक दिया गया है और वर्तमान निष्पादन स्टैक पर कार्य रिकॉर्ड किए गए हैं। टाइमलाइन के लौ-चार्ट में आप यही देखते हैं।

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

ऐसे अन्य प्रोफेसर हैं जो सभी फ़ंक्शन कॉल रिकॉर्ड कर सकते हैं, उपयोग करने में सबसे आसान संभवतः Web Tracing Framework है। यह आपके कोड को मापकर काम करता है (मापने वाले कोड के साथ प्रत्येक फ़ंक्शन कॉल को लपेटकर इसे फिर से लिखें)। डब्ल्यूटीएफ को सेटअप (वाद्ययंत्र चरण) के लिए थोड़ा और समय लगता है और समय पर मापा जाएगा (क्योंकि यह नया कोड इंजेक्ट करता है) लेकिन कम से कम सभी फ़ंक्शन कॉल दिखा सकते हैं।

नीचे की रेखा यह है कि कोई भी एकल प्रोफाइलर नहीं है जो सभी ट्रेसिंग नौकरियों के लिए सही होगा। आप जो मापना चाहते हैं उसके आधार पर आपको अलग-अलग लोगों का उपयोग करने की आवश्यकता है। एक उत्कृष्ट बात है जो विभिन्न प्रोफाइलरों के विवरण में जाती है, अत्यधिक अनुशंसित: https://www.youtube.com/watch?v=nxXkquTPng8

संबंधित मुद्दे