JVM常用配置参数

Trace跟踪参数:

-verbose:gc   对gc的状况进行跟踪

-XX:+printGC  打开gc日志开关

-XX:+printGCDetails  打开gc详细信息

-XX:+printGCTimestamps  打开gc发生的时间戳

-Xloggc:log/gc.log   指定GC log的位置,以文件输出,帮助开发人员分析问题

-XX:+PrintHeapAtGC   每次一次GC后,都打印堆信息

-XX:+TraceClassLoading   监控类的加载

-XX:+PrintClassHistongram  按下Crtl+Break后,打印类的信息,分别显示:序号,实例数量、总大小、类型

堆的分配参数:

-Xmx:指定最大堆  最多使用多大 例:-Xmx20m   这个堆最多使用20兆

-Xms:  指定最小堆  最小使用多少   例:  -Xms5m

获取当前堆的最大分配空间:Runtime.getRuntime().maxMemory()

获取当前堆的空闲空间:Runtime.getRuntime().freeMemory()

获取当前堆的总空间(被分配的空间):  Runtime.getRuntime().totalMemory()

-Xmn:  设置新生代的大小    -Xmn1m

-XX:NewRatio   新生代和老年代的比值  如果值为4,则说明新生代:老年代=1:4,新生代占1/5  -XX:NewRatio=1

-XX:+HeapDumpOnOutOfMemoryError   OOM时导出堆到文件

-XX:+HeapDumpPath   导出OOM的路径

JVM常用配置参数


JVM常用配置参数

永久区分配参数:

-XX:PermSize    设置永久区的初始空间

-XX:MaxPermSize   设置永久区的最大空间

如果对空间没有用完,也抛出了OOM,有可能是永久区导致的

栈大小分配:

通常只有几百k

决定了函数调用的深度

每个线程都有独立的栈空间

局部变量、参数 分配在栈上