一、JVM常用啓動參數
-Xms:設置堆的最小值。
-Xmx:設置堆的最大值。
-Xmn:設置新生代的大小。
-Xss:設置每個線程的棧大小。
-XX:NewSize:設置新生代的初始值。
-XX:MaxNewSize:設置新生代的最大值。
-XX:PermSize:設置永久代的初始值。
-XX:MaxPermSize:設置永久代的最大值。
-XX:SurvivorRatio:年輕代中Eden區與Survivor區的大小比值。
-XX:PretenureSizeThreshold:令大於這個設置值的對象直接在老年代分配。
二、常用內存調試工具
jps:查看虛擬機進程的狀況,如進程ID.
jmap:用於生成堆轉儲快照文件(某一時刻的)。
jhat:對生成的堆轉儲快照文件進行分析。
jstack:用來生成線程快照(某一時刻的)。生成線程快照的目的是定位線程長時間停頓的原因(死鎖、死循環、IO等),通過查看各個線程的調用堆棧,就可以知道沒有響應的線程在後台做了什麼或等什麼資源。
jstat:虛擬機統計信息監視工具。如顯示垃圾收集的情況,內存使用的情況。
Jconsole:主要是內存監控和線程監控。內存監控:可以顯示內存的使用情況。線程監控:遇到線程停頓時,可以使用這個功能。