डिबगिंग करते समय, आधुनिक ब्राउज़रों द्वारा किए गए कोड अनुकूलन के बायप्रोडक्ट के रूप में, आप "सभी चर" जो "तथ्यात्मक" दायरे में नहीं देख सकते हैं। यह सर्वविदित है और एसओ पर यहां एक पिछले प्रश्न में संबोधित किया गया है । यह विशेषता, जबकि उत्पादन में सबसे निश्चित रूप से उपयोगी मुझे विकास के दौरान बहुत परेशान कर रहा है, यह मुझे धीमा कर देता है (यह स्पष्ट होना चाहिए।)
अब मेरा प्रश्न यह है कि क्या इस व्यवहार को बंद करने का कोई तरीका है? क्या मैं कुछ कॉन्फ़िगरेशन फ़ाइल संपादित कर सकता हूं, या क्या कोई ब्राउज़र प्लगइन है, या हो सकता है कि ब्राउज़र निष्पादन योग्य "डेवलपर्स के लिए विशेष बिल्ड संस्करण" है? जब मैं नया कोड लिख रहा होता हूं, तो मैं तुरंत सांत्वना में अपना कोड लिखना पसंद करता हूं, इसलिए यह वास्तव में मेरे लिए बुरा है।
अद्यतन / संपादित करें
यहाँ एक आंशिक समाधान है, जिसका श्रेय Paul1365972 को जाता है।
आपको कमांड लाइन से क्रोम ब्राउज़र शुरू करना होगा, विशेष विकल्पों के साथ, जैसे:
- क्रोम को पूरी तरह से बंद कर दें
- Chrome को कंसोल से चलाएं
"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" --js-flags="--allow-natives-syntax"
जो विंडोज़ के समान ओएस के लिए है। - डेवलपर कंसोल खोलें और निष्पादित करें
"%GetHeapUsage()"
। यदि आपने Chrome को विकल्प के साथ ठीक से प्रारंभ किया है, तो एक नंबर कंसोल में लॉग इन किया जाएगा, अन्यथा आपको सिंटैक्स त्रुटि मिलेगी।
इस कमांड लाइन के झंडे के साथ, आप 'V8' इंजन के साथ बात कर सकते %
हैं, जो कमांड के साथ शुरू होता है , जो सादे जावास्क्रिप्ट में वाक्यविन्यास त्रुटियां हैं। पॉल के जवाब में इस तरह के उपलब्ध V8 कमांड की एक सूची दी गई थी ।
नहीं है %NeverOptimizeFunction()
कि सूची है, जो कुछ जो बात मैं सिर्फ कॉल करने के लिए और इसके साथ किया जाना होगा की तरह दिखाई देता है पर। दुर्भाग्य से, वह फ़ंक्शन वह नहीं करता है जिसकी मुझे उम्मीद थी, जैसा कि अगले स्क्रीनशॉट में दिखाया गया है।
(( पॉल के उत्तर से अन्य लिंक (v8-natives नोड मॉड्यूल) का इस संदर्भ में हमारे लिए कोई महत्व नहीं है। यह सब यह है कि यह "%" फ़ंक्शन कॉल के चारों ओर एक-लाइनर को लपेटता है ताकि कोड न हो। जो ब्राउज़र v8 नहीं हैं।)))
((मुझे एक समय याद है जब यह काम किया था (जब इस अनुकूलन का आविष्कार नहीं किया गया था / अभी तक लागू नहीं हुआ है)। मुझे नहीं पता कि कब तक। दस साल? 15 साल? कुछ ऐसा ही। पिछले क्रोम संस्करण क्या था (यदि कोई भी) और अंतिम फ़ायरफ़ॉक्स संस्करण क्या था (अधिक यकीन है कि यहां मौजूद है) जहां आप कर सकते हैं; यह आपको इनाम नहीं मिलेगा, लेकिन यह आपको एक उत्थान मिलेगा, यदि आप इसे जानते हैं और इसे उत्तर के रूप में पोस्ट करते हैं ।)))
समाधान
आप पेट्री SRNICEK धन्यवाद
नया प्रश्न
जबकि पेट्र का समाधान बहुत मदद करता है, यह सही नहीं है। यह सवाल बहुत लंबा हो रहा है, इसलिए मैंने एक नया सवाल पोस्ट किया कि पेट्र के समाधान को कैसे बेहतर बनाया जा सकता है। (मैं निश्चित रूप से इस प्रश्न को यहाँ संपादित कर सकता हूं, लेकिन यह "अनहैतिहासिक" महसूस होगा, यदि आप जानते हैं कि मेरे पास क्या अर्थ है।
v8-natives
पुस्तकालय सिर्फ एक सरल पुस्तकालय में कोड में महत्वपूर्ण% कॉल कि होना चाहिए लपेटता noops
एक ब्राउज़र या नोड जो विशेष --allow-मूल निवासी-वाक्य रचना ध्वज में शुरू नहीं किया गया था में ..
%NeverOptimizeFunction(foo)
मुझे सिर्फ बॉडीऑन लोड के लिए कहा जाता है, "सिर्फ इसलिए", "अच्छी तरह से सोचकर, यह दुख होगा"। मुद्दा यह है कि foo
जिस तरह से मैं उम्मीद कर रहा था उस तरह से इसे नहीं अपनाया गया है। चर lorem
अदृश्य है। मान लीजिए कि मैं कुछ कोड लिखना चाहता हूं जो फ़ंक्शन फू में जाना है। इसे अपने टेक्स्ट एडिटर में टाइप करने के बजाय, मैं इसे देव कंसोल में टाइप करता हूं (जबकि डिबगर फू पर बैठा है), यह देखें कि क्या यह वही है जो मैं चाहता हूं, और फिर इसे कंसोल से अपने टेक्स्ट एडिटर पर कॉपी / पेस्ट करें। यही कारण है कि मुझे काम करना पसंद है। और नहीं कर सकते। अनुकूलन के कारण। उसे ले लो?
--js-flags
(कई टर्बो- संबंधित लोगों सहित ) के साथ प्रयोग करने के साथ-साथ पॉल 1365972 से पहले कई वी 8 देशी आदेशों के साथ अपने जवाब पोस्ट किए, लेकिन मैंने वांछित व्यवहार को प्राप्त करने में सक्षम नहीं था। मेरा मानना है कि यह दृष्टिकोण एक मृत अंत हो सकता है। [v8]
इस प्रश्न के लिए एक टैग जोड़ना सार्थक हो सकता है । V8 के आंतरिक कामकाज की गहरी समझ रखने वाला कोई व्यक्ति यह स्पष्ट करने में सक्षम हो सकता है कि क्या यह रास्ता है या शायद आपको सही दिशा में इंगित करता है।