2015-10-14 3 views
8

क्या यह जानने का कोई तरीका है कि जावास्क्रिप्ट एप्लिकेशन में किस प्रकार की ऑब्जेक्ट कचरा-एकत्रित की जा रही है?जेएस: प्रोफाइल क्या ऑब्जेक्ट्स कन्स्ट्रक्टर्स कचरा एकत्रित हैं

मुझे पता है कि मैं हीप स्नैपशॉट प्राप्त कर सकता हूं लेकिन यह केवल बताता है कि कौन सी वस्तुएं सबसे आम हैं, न कि सबसे कचरा-संग्रहित।

और हीप आवंटन ऑब्जेक्ट क्लास के बारे में विस्तृत जानकारी नहीं देते हैं।

+0

जो बड़े पैमाने पर उस पर्यावरण पर निर्भर करता है जिसमें आपका जेएस चल रहा है। जैसे यदि आप नाशर्न पर निष्पादित कर रहे हैं तो आप केवल एक JVM प्रोफाइलर का उपयोग कर सकते हैं। – the8472

+0

क्या आपको इसका समाधान मिला? – Jodes

+1

@ जोड्स देखें http://stackoverflow.com/questions/39429647/how-to-detect-the-memory-allocations-that-are-triggering-garbage-collection-in-j/ – guest271314

उत्तर

1

किस जावास्क्रिप्ट रनटाइम इंजन का उपयोग कर? प्रत्येक इंजन का अपना जीसी और जीसी कार्यक्रमों की निगरानी करने का अपना तरीका होगा। यदि आप एक जीसी कार्यान्वयन के बारे में अधिक जानने की कोशिश कर रहे हैं तो Chrome V8 इंजन एक अच्छी जगह होगी: https://developers.google.com/v8/ यदि आप github https://chromium.googlesource.com/v8/v8.git से स्रोत खींचते हैं तो आपको फ़ाइलें src/heap/gc-tracer फ़ाइलें मिलेंगी। [H | cc] बहुत सारी क्षमता प्रदान करें, और आप अपनी खुद की प्रोफाइलिंग आवश्यकताओं के लिए और जोड़ सकते हैं।

+0

डैनियल, यह सवाल का जवाब नहीं देता है। जीसी इंजन का कार्यान्वयन सवाल नहीं है। जीसी एकत्रित करने वाली जावास्क्रिप्ट ऑब्जेक्ट्स को जानने का तरीका क्या है। – Jodes

+0

स्रोत कोड देखें। अगर वह क्रोम वी 8 का उपयोग करता है, तो वह वह जानकारी प्राप्त कर सकता है। –

+0

क्षमा करें, मैं पालन नहीं करता हूं। जावास्क्रिप्ट को गति देने के लिए वी 8 कोड का उपयोग करने के बारे में कोई कैसे होगा? डीबग जानकारी प्राप्त करने के लिए इसे संशोधित करके और एक कस्टम सी ++ जावास्क्रिप्ट दुभाषिया का निर्माण करके? – Jodes

1

मुझे लगता है कि आप एकाधिक ढेर स्नैपशॉट्स ले कर और स्नैपशॉट की तुलना करके यह कर सकते हैं कि कौन सी ऑब्जेक्ट्स एकत्रित की जा रही हैं। आप this उत्तर देख सकते हैं। उम्मीद है कि यह मदद करता है :)

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