2008-11-17 1 views
12

मैं एक विंडोज 2003 सर्वर पर ActiveState Perl 5.6 का उपयोग कर रहा हूं, और मुझे कुछ मेमोरी लीक समस्याएं हैं। क्या कोई अच्छा उपकरण है (या यहां तक ​​कि खराब उपकरण जो एक सुराग देंगे) जो मैं उन्हें खोजने में मदद करने के लिए उपयोग करने में सक्षम होगा।क्या मेरे पर्ल प्रोग्राम में मेमोरी लीक खोजने के लिए कोई उपकरण हैं?

उत्तर

13

सभी पर्ल प्रोग्राम मेमोरी लीक या तो एक XS एक संदर्भ पकड़े, या एक परिपत्र डेटा संरचना हो जाएगा। Devel::Cycle सर्कुलर संदर्भ खोजने के लिए एक शानदार टूल है, यदि आपको पता है कि संरचनाओं में लूप होने की संभावना है। Devel::Peek का उपयोग उच्च-अपेक्षाकृत संदर्भ गणना वाले ऑब्जेक्ट्स को खोजने के लिए किया जा सकता है।

यदि आपको नहीं पता कि और कहां देखना है, Devel::LeakTrace::Fast एक अच्छा पहला स्थान हो सकता है, लेकिन आपको डिबगिंग के लिए बनाया गया एक पर्ल की आवश्यकता होगी।

यदि आपको संदेह है कि लीक एक्सएस-स्पेस के अंदर है, तो यह बहुत कठिन है, और Valgrind शायद आपकी सबसे अच्छी शर्त होगी। Test::Valgrind आप कोड आप खोज करने की जरूरत की राशि कम करने में मदद कर सकते हैं, लेकिन यह विंडोज पर काम नहीं करेगा, तो आप बंदरगाह होगा लिनक्स के लिए (कम से कम टपकाया हिस्से में) ऐसा करने के लिए में।

5

Devel::Gladiator आप कैसे प्रत्येक चर प्रकार के कई पर्ल किसी भी समय पर स्मृति में है की एक सूची दिखाई देगा, और क्या वे संदर्भ के लिए कर रहे हैं। यह पता लगाने के लिए बहुत उपयोगी है कि किस प्रकार की वस्तुओं का निर्माण किया जा रहा है लेकिन मुक्त नहीं किया गया है।

4

चूंकि यह अभी तक का उल्लेख नहीं किया हो गया है, Devel::Size डेटा संरचना के आकार रिपोर्ट करेंगे। कोई अन्य जानकारी नहीं दी गई है और आपके डेटा संरचना की 'सीमा' निर्धारित करने के लिए उपयोग किए जाने वाले नियम अपारदर्शी हैं। सरल संरचनाओं के लिए यह कोई समस्या नहीं है।

Devel::SizeMe मेरा एक शौक परियोजना है कि Devel की समस्याओं :: आकार को हल करने और एक पर्ल दुभाषिया की पूरे स्मृति के उपयोग के दृश्य सक्षम करने के लिए करना है। स्क्रीनकास्ट और वीडियो के लिंक सहित अतिरिक्त जानकारी के लिए my blog देखें। मेरे लक्ष्यों में से एक लीक की पहचान और दृश्यता को सक्षम करना है, लेकिन यह अभी भी एक रास्ता है।

अपडेट:

अन्य टिप्पणी के अलावा, आप मेरे Perl Memory Use talk LPW2013 में उपयोगी मिल सकता है। मैं the screencast देख के रूप में यह स्लाइड बताते हैं और कुछ प्यारा दृश्यों और अंत में कुछ प्रश्न & एक है की सलाह देते हैं।

मैं भी पॉल इवांस Devel::MAT मॉड्यूल जो मैं बात में उल्लेख को देख सुझाव देना चाहेंगे।

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