2010-12-22 11 views
1

vorformulieren Ich bin interessiert, ein Java-Programm zu schreiben, um GC auf einer anderen JVm durchzuführen, die in der anderen Maschine vorhanden ist. Derzeit überwache ich die JVM manuell, dh ich öffne jconsole in meiner Maschine & Preform GC, wenn der JVM-Speicher bestimmte Speicherlimits überschreitet. Ich möchte von Java-Programm automatisch tun ..RMI-Programm GC auf einer anderen JVM

bitte Anregungen liefern ....

Danke, Krishna

+2

Nur nicht. Lassen Sie die Garbage Collection dem Garbage Collector. Sie können nicht helfen, GC manuell zu tun - Sie können nur stören. – Rekin

Antwort

0

Aber denken Sie daran, wenn Sie anrufen System.gc() ist es nicht GarbageCollection beginnen ist garantiert . Sie sollten dies der JVM überlassen.

3

Das klingt nach einem schrecklichen Hack, um mit einem Problem fertig zu werden, das fast sicher nichts mit dem Müllsammler zu tun hat. Das Erzwingen der vollständigen Speicherbereinigung ist fast nie das, was Sie tun möchten. Es gibt mehrere Threads auf Stackoverflow darüber, wie Why is it a bad practice to call System.gc()?

Die kurze Antwort ist, tun Sie das nicht. Stimmen Sie Ihre GC-Optionen so ab, dass sie das tun, was Sie möchten.

Wenn Sie alle anderen Optionen geprüft haben und noch wollen diesen Weg der Trauer gehen, können Sie nur eine RMI-Methode aufrufen haben System.gc() wie Herr Flamer vermuten lässt. Wenn Sie wirklich sicher sein wollen, verwenden Sie die JVMTI ForceGarbageCollection Methode.

+0

+1: Man sollte niemals gc() benutzen. – Rekin