常用的 JVM 配置参数

  1. -Xms:初始堆内存。只要启动,就占用的堆大小。
  2. -Xmx:最大堆内存。如果遇到 OutOfMemoryError 可以调大该数值,最大不要超过系统 1/4。
  3. -Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。
    当出现大量局部变量,递归时,会发生栈空间 OOM(java.lang.StackOverflowError)之类的错误。
  4. -XX:NewSize:设置新生代大小的绝对值。
  5. -XX:NewRatio:设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总 heap 的1/4。
  6. -XX:MaxPermSize:设置持久代大小。
    java.lang.OutOfMemoryError:PermGenspace 这个 OOM 错误需要合理调大 PermSize 和 MaxPermSize 大小。
  7. -XX:SurvivorRatio:年轻代中 Eden 区与两个 Survivor 区的比值。注意,Survivor 区有 form 和 to 两个。比如设置为8时,那么 eden:form:to=8:1:1。
  8. -XX:HeapDumpOnOutOfMemoryError:发生 OOM 时 dump 堆内容,这是一个非常好的诊断方法。
  9. -XX:HeapDumpPath:导出堆的转储文件路径。
  10. -XX:OnOutOfMemoryError:OOM 时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。

评论
 上一篇
可以提高千倍效率的 Java 代码小技巧 可以提高千倍效率的 Java 代码小技巧
前言代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了
2019-10-11
下一篇 
Java 集合之 Vector 源码分析 Java 集合之 Vector 源码分析
Vector 和 ArrayList 有一些相似,其内部都是通过一个容量能够动态增长的数组来实现的。不同点是 Vector 是线程安全的,因为其内部有很多同步代码快来保证线程安全。 简介java.util.Vector 实现了 java.u
2019-09-14
  目录