Eclipse 中设置JVM 内存及JVM监控调优
来源:互联网 发布:js unselectable 编辑:程序博客网 时间:2024/06/05 15:51
当我们在IDE控制台发现:
说明我们给jvm的持久代设置的值太小,此时你需要打开eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,将-XX:PermSize及 -XX:MaxPermSize的值加大。
如果你懂jvm性能调优的话,从jstat监控中可以得知其中的关系。以下为实际演示操作:
1,按照如下图步骤将-XX:PermSize及 -XX:MaxPermSize的值修改到足够小,故意造项目启动报错,我设置为32m.然后保存。
2.在IDE中启动tomcat的同时打开dos窗口,使用jps命令获取进程id:(此进程id即为在windows任务管理器-进程中的javaw.exe的进程id)
3.并立即执行jvm监控:
现在对上图来进行分析:
发现PU等于PC的值,并且也等于前面在IDE中设置的-XX:MaxPermSize的值(32768/1024=32m),结合后面的术语能看明白持久代使用的空间已经达到了最大值32m了,故报出了“java.lang.OutOfMemoryError: PermGen space”错误。
另如果发现YGC值特别大的话,那就将-Xmn的值设置大一点(通过-Xmn10m 选项来指定S0C、S1C和EC的总和为10m的),特别注意FGC,尽量使FGC的值不要太大(解决办法:将-Xms及-Xmx的值设置大一点),,因为FGC在垃圾回收期间会检查所有存活的对象,因此会花费比YGC更长的时间。从而让你的应用反应迟钝,因此应该尽量减少FGC. (所有的垃圾收集都是“Stop the World”事件,因为所有的应用线程都会停下来直到操作完成)
一些术语的中文解释:
S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
OC:Old代的容量 (字节)
OU:Old代目前已使用空间 (字节)
PC:Perm(持久代)的容量 (字节)
PU:Perm(持久代)目前已使用空间 (字节)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
- Eclipse 中设置JVM 内存及JVM监控调优
- Eclipse 中设置JVM 内存及JVM监控调优
- Eclipse中JVM内存设置
- Eclipse中JVM内存设置
- Eclipse中设置JVM内存
- Eclipse 中设置JVM 内存
- Eclipse中设置JVM内存
- Eclipse 中设置JVM 内存
- Eclipse 中设置JVM 内存
- Eclipse中设置JVM内存
- Eclipse中设置JVM内存
- Eclipse 中设置JVM 内存
- Eclipse中设置JVM内存
- Eclipse 中设置JVM 内存
- Eclipse 中设置JVM 内存
- Eclipse 中设置JVM 内存
- Eclipse中设置JVM内存
- Eclipse中设置JVM内存
- linux 命令之tcpdump
- Java Clob类型转String类型
- 如何使用Python 打开exel等各种文件或者应用,就用:os.startfile
- 第十六周项目1-平方根中的异常
- Audio Streaming mit UDP in C
- Eclipse 中设置JVM 内存及JVM监控调优
- android listview 异步加载图片并防止错位
- 微软100题(94)找出数组中长度最长的等差数列
- Android Gradle
- 在ListView或GridView 中使用到跑马灯滚动效果实现的问题。
- java 执行bat文件
- 论坛推荐:数字电路如何抗干扰
- C++ 12.1 类的定义、声明、成员函数、数据成员
- M控件随着FC对话框大小自动调整大小