ऐलोकेशन प्रोफ़ाइलर टूल का इस्तेमाल करके उन ऑब्जेक्ट का पता लगाएं जो सही तरीके से कचरा नहीं इकट्ठा करते और मेमोरी बनाए रखते हैं.
टूल के काम करने का तरीका
एलोकेशन प्रोफ़ाइलर में हीप प्रोफ़ाइलर के स्नैपशॉट की पूरी जानकारी होती है. साथ ही, इसे टाइमलाइन पैनल के तेज़ी से अपडेट और ट्रैक किए जाने के साथ जोड़ा जाता है. इन टूल की तरह ही, ट्रैकिंग ऑब्जेक्ट के हीप ऐलोकेशन में रिकॉर्डिंग शुरू करना, अलग-अलग कार्रवाइयां करना, और फिर विश्लेषण के लिए रिकॉर्डिंग बंद करना शामिल है.
यह टूल पूरी रिकॉर्डिंग के दौरान समय-समय पर हीप स्नैपशॉट लेता है. ऐसा अक्सर हर 50 मि॰से॰ में किया जाता है! और रिकॉर्डिंग के आखिर में एक फ़ाइनल स्नैपशॉट भी आता है.
ऐलोकेशन प्रोफ़ाइलर को चालू करें
ऐलोकेशन प्रोफ़ाइलर का इस्तेमाल शुरू करने के लिए:
- पक्का करें कि आपके पास Chrome कैनरी का सबसे नया वर्शन हो.
- डेवलपर टूल खोलें और नीचे दाएं दिए गए गियर आइकॉन पर क्लिक करें.
- अब प्रोफ़ाइलर पैनल खोलें. इसके बाद, आपको "हीप ऐलोकेशन रिकॉर्ड करें" नाम की एक प्रोफ़ाइल दिखेगी
हीप ऐलोकेशन प्रोफ़ाइल को पढ़ें
हीप ऐलोकेशन प्रोफ़ाइल से पता चलता है कि ऑब्जेक्ट कहां बनाए जा रहे हैं. साथ ही, यह रिटेनिंग पाथ की पहचान करती है. नीचे दिए गए स्नैपशॉट में, सबसे ऊपर मौजूद बार से पता चलता है कि इस हीप में नए ऑब्जेक्ट कब मिले हैं.
हर बार की ऊंचाई, हाल ही में असाइन किए गए ऑब्जेक्ट के साइज़ के हिसाब से होती है. बार के रंग से पता चलता है कि वे ऑब्जेक्ट अब भी फ़ाइनल हीप स्नैपशॉट में लाइव हैं या नहीं. नीले बार, उन ऑब्जेक्ट को दिखाते हैं जो टाइमलाइन के आखिर में अब भी मौजूद हैं. वहीं, धूसर बार उन ऑब्जेक्ट के बारे में बताते हैं जिन्हें टाइमलाइन के दौरान बांटा गया था, लेकिन तब से कचरा इकट्ठा किया गया है:
नीचे दिए गए स्नैपशॉट में, किसी कार्रवाई को 10 बार किया गया. सैंपल प्रोग्राम पांच ऑब्जेक्ट को कैश मेमोरी में सेव करता है, इसलिए आखिरी पांच नीले बार उम्मीद किए जाते हैं. हालांकि, बाईं ओर सबसे बाईं ओर मौजूद नीला बार, किसी समस्या की ओर इशारा करता है.
फिर आप ऊपर टाइमलाइन में मौजूद स्लाइडर का इस्तेमाल करके उस खास स्नैपशॉट पर ज़ूम इन कर सकते हैं और उस समय हाल ही में असाइन किए गए ऑब्जेक्ट देख सकते हैं:
हीप में किसी खास ऑब्जेक्ट पर क्लिक करने से, हीप स्नैपशॉट के निचले हिस्से में उसका बनाए रखने वाला ट्री दिखेगा. ऑब्जेक्ट के रिटेंशन पाथ की जांच करने से, आपको यह समझने के लिए काफ़ी जानकारी मिल जाती है कि ऑब्जेक्ट को क्यों इकट्ठा नहीं किया गया. साथ ही, गै़र-ज़रूरी रेफ़रंस को हटाने के लिए, कोड में ज़रूरी बदलाव किए जा सकते हैं.
फ़ंक्शन के हिसाब से, मेमोरी का बंटवारा देखें
JavaScript फ़ंक्शन के हिसाब से भी मेमोरी का बंटवारा देखा जा सकता है. ज़्यादा जानकारी के लिए, फ़ंक्शन के हिसाब से मेमोरी के बंटवारे की जांच करना देखें.