एक लंबे समय तक चलने के लिए जावा कोड, जो गतिशील मेमोरी का भारी उपयोग करता है, हम आउट-ऑफ-मेमोरी त्रुटियों के साथ समाप्त हो सकते हैं मेमोरी में हीप स्पेस की कमी के कारण।
नीचे दिए गए प्रोग्राम में, हम प्रोग्राम द्वारा उपयोग किए जाने वाले फ्री जावा हीप स्पेस का परीक्षण कर सकते हैं। यदि हीप स्पेस का उपयोग किया जाता है 90 प्रतिशत से अधिक , तो कचरा संग्रहकर्ता को स्पष्ट रूप से कहा जाता है। System.gc() कचरा कलेक्टर पूरा होने तक कॉल कॉलिंग थ्रेड को अवरुद्ध कर रहा है। इसलिए, इस कोड को एक अलग थ्रेड में निष्पादित किया जा सकता है।
उदाहरण
public class GCTest { public void runGC() { Runtime runtime = Runtime.getRuntime(); long memoryMax = runtime.maxMemory(); long memoryUsed = runtime.totalMemory() - runtime.freeMemory(); double memoryUsedPercent = (memoryUsed * 100.0) / memoryMax; System.out.println("memoryUsedPercent: " + memoryUsedPercent); if (memoryUsedPercent > 90.0) System.gc(); } public static void main(String args[]) { GCTest test = new GCTest(); test.runGC(); } }
आउटपुट
memoryUsedPercent: 0.07187129404943532