我正在寫一個Java應用程序大量的時間(這是監視磁盤上的一些文件,並根據變化的東西寫入到數據庫),但我注意到它花費在垃圾收集相當長的時間。我的日誌文件的一個片段在下面;關於垃圾收集花費的每一分鐘,這是應用程序不應該做的太多。我公司推出的Java與Java的花費在垃圾收集
java -Xmx1024m -Xms256m -verbose:gc -jar myApplication.jar
和日誌文件給出
19:38:15 pong
[Full GC 905059K->593250K(1013632K), 0.9315089 secs]
19:38:28 pong
...
19:39:34 pong
[Full GC 864134K->595982K(1013632K), 0.9592708 secs]
19:39:47 pong
....
19:40:36 pong
[Full GC 875598K->623414K(1013632K), 1.2895245 secs]
19:40:39 pong
我大概可以切換到一個更好的垃圾收集器,它不會暫停我的計劃,但我更好奇,爲什麼它花費這麼多時間收集。編輯:我只得到主要的垃圾收集,我沒有看到小的收集。
什麼是調試的最佳方式?
「這是在應用程序不應該做非常」 - 這可能是爲什麼發生的GC然後.... – 2011-03-20 12:42:54
但後來它不應該是能夠從900 MB減少到600 MB,右? – 2011-03-20 12:44:21
沒有看到你的代碼,我不知道。 – 2011-03-20 12:45:27