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