JVM设置
来源:互联网 发布:互联网产品优化模板 编辑:程序博客网 时间:2024/04/27 14:27
JVM内存模型中分两大块,一块是New Generation, 另一块是Old Generation. 在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces, 它们用来存放每次垃圾回收后存活下来的对象。在Old Generation中,主要存放应用程序中生命周期长的内存对象,还有个Permanent Generation,主要用来放JVM自己的反射对象,比如类对象和方法对象等。
在New Generation块中,垃圾回收一般用Copying的算法,速度快。每次GC的时候,存活下来的对象首先由Eden拷贝到某个Survivor Space, 当Survivor Space空间满了后, 剩下的live对象就被直接拷贝到Old Generation中去。因此,每次GC后,Eden内存块会被清空。在Old Generation块中,垃圾回收一般用mark-compact的算法,速度慢些,但减少内存要求。
JVM参数很多,但最常见的是以下一些,具体可以参考JVM白皮书。NewSize, MaxNewSize, NewRatio, and SurvivorRatio是用来调整New Generation的。PermSize和MaxPermSize是用来调整Permanent Generation的. 还有一组就是比较熟悉的 Xmx和Xms, 它们用来控制整个JVM的heap size. 一般来说我们把Xmx和Xms设置成相同数值,让JVM 能够aggressive占用分配给它的内存. 这样一来,我们可以有如下一个等式:
Xmx = Xms = Eden + 2 x Survivor Space + Old Generation
TotalHeapSize = Xmx setting + PermSize
关于JVM的优化,要根据具体应用程序来考量throughput和footprint.并不是Heap size越大越好, 因为Heap size大了, GC的次数会减少, 但每次运行的开销会增加。我们可以参考http://java.sun.com 和http://www.javaperformancetuning.com上的文章.
- JVM设置
- jvm 设置
- jvm设置
- JVM设置
- JVM设置
- jvm 设置
- jvm设置
- JVM设置
- 设置JVM内存设置
- jvm之eclipse设置jvm
- JVM(二)eclipse设置jvm
- 如何设置JVM内存设置
- 设置java jvm参数
- tomcat 设置jvm内存
- JVM 内存大小设置
- myeclipse设置jvm内存
- JVM内存分配设置
- JVM内存设置
- 增加网站流量的九则实用方法
- 读书笔记-UML精粹-类图
- DFS
- KMP算法
- Java语言中对HashMap的深度分析与比较(转)
- JVM设置
- 存储过程分页
- 利用java实现浏览器功能
- eclipse快捷键大全
- 关于Action里面定义的变量问题
- powerbuilder11的体验[转载]
- 什么是NGN?
- [YouTube] Android Demo -- An Open Source Platform from Google.com
- 用Microsoft Excel打开编辑CSV文件