मैं अपने JRuby आईआरबी सांत्वना ऊपर निकाल दिया और टाइप:JRuby - कचरा कलेक्टर कैसे शुरू करें?
irb(main):037:0* GC.enable
(irb):37 warning: GC.enable does nothing on JRuby
=> true
irb(main):038:0> GC.start
=> nil
irb(main):039:0>
मैं मैन्युअल को सक्रिय या एक कार्यक्रम के दौरान JVM कचरा शुरू कर सकते हैं?
मैं पूछता हूं क्योंकि मेरे पास एक ऐसा प्रोग्राम है जिसके बारे में 500 एमबीईटी परीक्षण डेटा उत्पन्न करने और इसे MySQL में सहेजने की आवश्यकता है। कार्यक्रम नेस्टेड लूप के लगभग 5 स्तरों का उपयोग करता है, और यह लगभग 100 एमबीटीई परीक्षण डेटा उत्पन्न करने के बाद एक जेवीएम मेमोरी हेप अपवाद के साथ दुर्घटनाग्रस्त हो जाता है क्योंकि वहां कोई और ढेर स्मृति नहीं है। मैं बाहरी लूप के हर भाग के बाद कचरा कलेक्टर चलाने देना चाहता हूं ताकि आंतरिक लूपों में बनाए गए सभी अनाथ वस्तुओं को साफ किया जा सके।
यह मदद करने की संभावना नहीं है, क्योंकि यदि JVM स्मृति से बाहर हो जाता है, तो यह छोड़ने से पहले जीसी चलाएगा। आपको यह सुनिश्चित करने की आवश्यकता हो सकती है कि आप आवश्यकतानुसार संदर्भों को लंबे समय तक नहीं रख रहे हैं और/या ढेर आकार में वृद्धि कर रहे हैं। – theglauber