我正好遇到下面的代碼(略簡體):定期垃圾收集是否有助於JVM的性能?
/* periodically requests garbagecollect to improve memory usage and
garbage collect performance under most JVMs */
static class GCThread implements Runnable {
public void run() {
while(true) {
try {
Thread.sleep(300000);
} catch (InterruptedException e) {}
System.gc();
}
}
}
Thread gcThread = new Thread(new GCThread());
gcThread.setDaemon(true);
gcThread.start();
我尊重代碼作者,但不再具有方便地訪問,請他捍衛他的主張在頂部的評論。
這是真的嗎?與我的直覺相反,這個小小的黑客應該改進任何東西。我希望JVM有更好的裝備來決定何時執行一個集合。
代碼運行在Z/OS上的IBM WebSphere內部運行的Web應用程序中。
我非常懷疑這一點。把代碼拿出來,讓作者在基準測試中顯示出來,然後再把它放回去。 – delnan 2011-02-26 20:54:22
無論如何RMI會定期調用GC(如果未收到次要的集合) – 2011-02-27 00:17:20