हमारे कार्यक्रमों में से एक को कभी-कभी उपयोगकर्ता की मशीन पर OutOfMemory
त्रुटि मिल रही है, लेकिन निश्चित रूप से जब मैं इसका परीक्षण नहीं कर रहा हूं। मैंने इसे जेपीरोफाइलर के साथ चलाया (10 दिनों के मूल्यांकन लाइसेंस पर क्योंकि मैंने इसे पहले कभी नहीं उपयोग किया है), और हमारे कोड उपसर्ग पर फ़िल्टरिंग, कुल आकार और उदाहरणों की संख्या में सबसे बड़ा हिस्सा एक विशेष साधारण वर्ग के 8000+ उदाहरण हैं ।मैं कैसे पता लगा सकता हूं कि मुक्त वस्तुओं पर क्या हो रहा है?
मैंने जेपीरोफेलर पर "कचरा संग्रहण" बटन पर क्लिक किया, और हमारे अन्य वर्गों के अधिकांश उदाहरण चले गए, लेकिन इन विशेषताओं को नहीं। मैंने परीक्षण को फिर से चलाया, फिर भी उसी उदाहरण में, और इसने कक्षा के 4000+ अधिक उदाहरण बनाए, लेकिन जब मैंने "कचरा कलेक्ट" पर क्लिक किया, तो वे 8000+ मूल वाले लोगों को छोड़कर चले गए।
ये उदाहरण विभिन्न चरणों में विभिन्न संग्रहों में फंस गए हैं। मुझे लगता है कि तथ्य यह है कि वे एकत्रित कचरे नहीं हैं, इसका मतलब यह होना चाहिए कि संग्रह में से किसी एक के संदर्भ में कुछ हो रहा है ताकि वस्तुओं के संदर्भ में हो।
कोई सुझाव मैं संदर्भ में क्या हो रहा है यह पता लगा सकता हूं? मैं कोड में क्या देखना है, इसके साथ ही जेपीआरओफ़ाइलर में इसे खोजने के तरीकों के बारे में सुझाव ढूंढ रहा हूं।
यदि आप एक मुफ्त प्रोफाइलर की खोज करते हैं, तो मेरा सुझाव है कि आप http://jiprof.sourceforge.net/ देखें। शायद थोड़ा सा फैशन, कोई फैंसी गुई और इतने पर, लेकिन ज्यादातर मामलों के लिए काम कर रहा है। – dhiller