2012-11-16 29 views
7

के साथ मेमोरी समस्याएं मैं कुछ नोड ऐप (v 0.8.6) के साथ कुछ मेमोरी लीक की मूल समस्या को प्राप्त करने का प्रयास कर रहा हूं।डीबगिंग नोड जेएस कचरा संग्रह/क्रोम

इसे समझने में सहायता के लिए मैं https://github.com/c4milo/node-webkit-agent का उपयोग कर रहा हूं। चूंकि ऐप बड़ा है, इसलिए मैंने इस मुद्दे को एक परीक्षण बिस्तर में अलग किया है ताकि बड़े आवेदन में शोर की मात्रा सीमित हो सके।

हम अपने परीक्षण चलाते हैं, फिर क्रोम एजेंट को प्रक्रिया में संलग्न करते हैं। ऑब्जेक्ट ऐसा लगता है जैसे इसे साफ़ किया जाना चाहिए क्योंकि किसी भी रूट ऑब्जेक्ट पर बनाए रखने वाले पथों में से कोई भी हवा नहीं बनता है। क्या मेरी समझ है कि कैसे बनाए रखने वाले पथ त्रुटिपूर्ण हैं, क्या मुझे कुछ और याद आ रही है? मैंने डीबग सत्र के नीचे एक स्क्रीनशॉट अपलोड किया है जो मुझे लगता है कि मुझे लगता है कि जीसीडी को बनाए रखने वाले पथों के साथ जीसीडी होना चाहिए जो किसी भी जीसी रूट ऑब्जेक्ट पर वापस नहीं आते हैं।

http://imgur.com/xV9xR

उत्तर

2

समस्या दृष्टिकोण dtrace कोशिश करने के लिए किया जाएगा एक और तरीका है।

और यहाँ एक लेख है कि कैसे dtrace उपयोग करने के लिए नोड अनुप्रयोगों में मेमोरी लीक खोजने के लिए के बारे में बात है: मैं अत्यधिक एक illumos में अपनी परियोजना लगाने smartOS की तरह आधारित distro की सिफारिश करेंगे http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/

+0

धन्यवाद - हम पर मार्च करेंगे जॉयेंट पर और उसे एक शॉट दें। इनपुट के लिए धन्यवाद। –

+0

यह वास्तव में खुशी के बिना किया जा सकता है। यदि आपके पास वीएमवेयर है, तो आप [smartos] (https://download.joyent.com/pub/iso/latest-vmwarevm.tar.bz2) को बूट कर सकते हैं, nodejs vm इंस्टॉल कर सकते हैं, और वहां अपना डिबगिंग कर सकते हैं। इससे भी बेहतर यदि आपके पास इसे रखने के लिए एक असली मशीन है, लेकिन यदि आपको केवल एक डिबगिंग प्लेटफॉर्म चाहिए, तो एक वीएम ठीक होना चाहिए। – socketwiz

+0

अहह - अच्छा। एक बार फिर धन्यवाद! –