1. 程式人生 > >eclipse列印gc日誌

eclipse列印gc日誌

1、在eclipse根目錄下的eclipse.ini配置檔案中新增以下引數:
-verbose:gc (開啟列印垃圾回收日誌)
-Xloggc:eclipse_gc.log (設定垃圾回收日誌列印的檔案,檔名稱可以自定義)
-XX:+PrintGCTimeStamps (列印垃圾回收時間資訊時的時間格式)
-XX:+PrintGCDetails (列印垃圾回收詳情)
新增完以上引數後當啟動Eclipse後就能在Eclipse根目錄看到一個eclipse_gc.log的gc日誌檔案
2、設定eclipse初始堆、非堆記憶體大小以及年輕代
-Xms50m –Xmx200m -XX:PermSize=30m -XX:MaxPermSize=60m
3、新增JVM監控引數
-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.port=6688 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

指令:
xmn 設定新生代的大小
xx:NewRatio:新生代與老年代的比值。假如值為4 表示新生代:老年代=1:4,即新生代佔堆的1/5.
xx:survivorRadio:設定兩個survivor區與eden的比值。假如值為8,即兩個survivorRadio:eden=2:8.
即一個survivorRadio(倖存代,有兩個from,to)佔年輕代的十分之一
-Xms256m -Xmx2048m
初始256m,最大佔用2048M

survivorRadio小會降低gc次數,提高效能。
官方推薦:新生代佔堆3/8,倖存代佔新生代1/10

-XX:+HeapDumpOnOutOfMemoryError
OOM(報錯,out of memory)時匯出堆到檔案
-XX:+HeapDumpPath
匯出OOM的路徑
-Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDum

-XX:PermSize -XX:MaxPermSize
設定永久區的初始空間和最大空間

JVM的方法區,也被稱為永久代。在這裡都是放著一些被虛擬機器載入的類資訊,靜態變數,常量等資料。這個區中的東西比老年代和新生代更不容易回收

-Xss
通常只有幾百K
決定了函式呼叫的深度
每個執行緒都有獨立的棧空間
區域性變數、引數 分配在棧上