标签:频繁 次数 int 存在 运行时 perm 导出 city erro
跟踪垃圾回收
-XX:PrintGC
-XX:+PrintGCDetails 更详细的信息,新生代GC还是老生代GC,永久区的GC,gc的时间
|
-XX:+PrintHeapAtGC : 每次gc前后分别打印堆信息
-XX:+PrintGCTimeStamps 分析gc发生的时间,在每次gc时额外输出gc发生的时间
-XX:+PrintGCApplicationConcurrentTime 由于gc会引起应用程序停顿,特别关注app的执行时间
-XX:+PrintGCApplicationStoppedTime 停顿时间
-XX:+PrintReferenceGC 跟踪系统软引用,弱引用,Finallize队列
-Xloggc:log/gc/log 默认gc日志控制台输出,该参数指定写入日志文件
类加载和卸载的跟踪
-verbose:class 跟踪类的加载和卸载 ,最后一次加载的类没有机会被卸载
-XX:TraceClassLoading 单独跟踪类的加载
-XX:TraceClassUnloading 跟踪类的卸载
-XX:+PrintClassHistogram 运行时打印和查看系统类的分布情况
系统参数查看
-XX:+PrintVMOptions 打印虚拟机接收到的命令行显示参数
-XX:+PrintCommandLineFlags 包含显示指定和虚拟机自行设置的参数
-XX:+PrintFlagsFinal 打印系统所有的参数值
让性能飞起来 :堆的配置参数
-Xms 初始堆的大小
-Xmx 最大堆
实际最大可用内存(与-Xmx存在偏差) = -Xmx最大内存 - from区的大小 (垃圾回收空间换时间的算法)
设置-Xms和-Xmx大小相等,可以减少gc的次数
新生代配置
-XX:SurvivsorRatio 设置新生代eden和from/to的比例关系 : eden/from = eden/to
-Xmn 年轻代大小
基本配置策略:尽可能将对象预留在新生代,减少老年代GC的次数
## 其他参数 |
-XX:NewRatio 新生代和老年代的比例
堆溢出处理
-XX:HeapDumpOnOutOfMemoryError 在内存溢出时导出整个堆信息
-XX:HeapDumpPath=./a.dump 导出堆信息的路径
-XX:OnOutOfMemoryError=脚本文件 在内存溢出时执行脚本(可以是导出java线程信息)
非堆内存的参数配置
方法区
jdk1.6和1.7
-XX:PermSize
-XX:MaxPermSize
jdk1.8
-XX:MaxMetaspaceSize
栈
-Xss
直接内存
-XX:MaxDirectMemorySize 最大可用直接内存,默认值为最大堆空间
直接内存适合申请次数少,访问较为频繁的场合,如果内存空间本身需要频繁申请,并不适合使用直接内存。
虚拟机的工作模式 :Server 和Client
-client
-server : 64位操作系统更倾向于使用server模式
|
两种模式下,可使用-XX:PrintFlagsFinal对比两种模式下参数的差异
标签:频繁 次数 int 存在 运行时 perm 导出 city erro
原文地址:https://www.cnblogs.com/fubinhnust/p/11956013.html