2011-04-24 10 views
12

तो कुछ कोड की रूपरेखा पर अपने हाथ की कोशिश की और मैं सबसे आसान तरीका है यह करने के लिए (कम से कम Firefox पर) लगा उपयोग करने के लिए था या तो console के time/timeEnd या profile/profileEnd, और मैं करने की कोशिश की दोनों।रूपरेखा जावास्क्रिप्ट आपके ब्राउज़र दुर्घटनाग्रस्त बिना

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

अब उदाहरण के लिए, 5e4 यह सॉर्टा काम करता है लेकिन मुझे नहीं लगता कि यह माइक्रो ऑप्टिमाइज़ेशन को स्पॉट करने के लिए पर्याप्त है, लेकिन इससे भी अधिक, यह दुर्घटनाग्रस्त हो जाता है।

तो आप अपनी जावास्क्रिप्ट को कैसे प्रोफाइल करते हैं? इस तरह, यह मुश्किल से व्यवहार्य है।

उत्तर

2

जब मैं अपना जावास्क्रिप्ट कोड प्रोफाइल करता था तो मैंने क्रोम के प्रोफाइलर का उपयोग किया; डेवलपर दृश्य में जावास्क्रिप्ट कंसोल इसे देता है, और यह मेरे लिए काफी काम करता है। क्या आपने कभी इसे आजमाया है?

+0

लेकिन क्या यह बड़ी संख्या में रनों के साथ प्रोफाइलिंग करते समय आपके क्रोम को क्रैश कर दिया? यही तो बात है। –

+0

क्षमा करें कि पहले इसे निर्दिष्ट नहीं किया गया है। मैंने वास्तव में इसे अपनी सीमा तक नहीं दबाया, इसलिए मैं वास्तव में यहां जवाब नहीं दे सकता, लेकिन मेरा सुझाव है कि आप इसे आज़माएं। – Masiar

2

मैंने एफएफ 4 पर फायरबग में बहुत सी पटकथाओं के साथ एक पेज को प्रोफाइल करने की कोशिश की है और क्रोम (अंतिम संस्करण) में भी यही है। फ़ायरफ़ॉक्स एक या दो के भीतर दुर्घटनाग्रस्त हो गया, क्रोम को इसके साथ समस्या नहीं लग रही थी। शायद आप Firebug issues list में कुछ पा सकते हैं?

+0

लेकिन यह वास्तव में फायरबग के साथ कोई मुद्दा नहीं है। फायरबग के प्रोफाइलर नहीं, मेरे लूप फ़ायरफ़ॉक्स को दुर्घटनाग्रस्त कर रहे हैं। –

+0

मेरी लूप एफबी को दुर्घटनाग्रस्त नहीं कर रही थी जब तक कि मैं फायरबग प्रोफाइलर नहीं चला जाता, इसलिए मैं कहूंगा कि यह एक संयोजन है। – KooiInc

+0

ठीक है, मैंने फ़ायरबग स्थापित और अनइंस्टॉल दोनों के साथ कोशिश की। और, अगर फ़ायरबग का कारण है, तो यह क्रोम और आईई में भी क्यों दुर्घटनाग्रस्त हो जाता है? –

0

मुझे लगता है कि JavaScript Debugger (उर्फ वेंकमैन) में प्रोफाइलर काफी अच्छा है। वर्तमान में addons.mozilla.org पर संस्करण फ़ायरफ़ॉक्स 4 के साथ संगत नहीं है, लेकिन इसे काम करने के लिए आवश्यक परिवर्तन किया गया है। विवरण के लिए https://bugzilla.mozilla.org/show_bug.cgi?id=614557 देखें।

+0

वेंकमैन को बोलने की कोशिश करते हुए हम बोलते हैं। –

+0

मेह, फ़ायरफ़ॉक्स 4.0.1 के लिए उपलब्ध नहीं है: < –

+0

आप Mercurial से 4.0-संगत संस्करण प्राप्त कर सकते हैं। अधिक जानकारी के लिए लिंक किए गए बगजिला पेज (अभी अपडेट किया गया) देखें। – MatrixFrog

1

हालांकि एक पारंपरिक कोड प्रोफाइलर नहीं, मेरा सुझाव है Google's Speed Tracer:

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

0

dynaTrace AJAX edition(free) - आपके बैग में एक और उपकरण। थोड़ा अधिक विस्तृत प्रदर्शन मीट्रिक, आईएमएचओ प्रदान करता है। वे केवल आईई के लिए इस्तेमाल करते थे, लेकिन उनका नया एक एफएफ का भी समर्थन करता है। Steve Sounder's blog

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