一、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:主要是內存監控和線程監控。內存監控:可以顯示內存的使用情況。線程監控:遇到線程停頓時,可以使用這個功能。