求教为什么UseCompressedOops参数默认要不用G1的情况才开启
elam
2013-04-23
近日在做一些JVM调优的事情 最后实验发现G1比较适合我们的应用场景 但是不知道为什么UseCompressedOops这个参数在使用G1时候默认是关闭的 会和G1产生什么冲突吗? 看了置顶的精华帖 但是没有发现UseCompressedOops和G1的关系是什么 新来贵圈,诚心求教 |
|
RednaxelaFX
2013-04-24
首先G1只建议在JDK 7 update 4之后使用。同时处于安全更新的考虑如果使用JDK 7的话请使用最新的update(目前是JDK 7 update 21)。
在这些JDK 7的版本里即便使用G1,UseCompressedOops也是默认打开的,只要GC堆大小在一定范围内。请参考这帖:http://rednaxelafx.iteye.com/blog/1010079 |
|
elam
2013-04-24
谢谢撒迦解答
关于G1和安全的问题我也有了解到了 我们是在用7U21 本以为G1和指针压缩有冲突才会被禁掉的 原来只是一个BUG |
|
RednaxelaFX
2013-04-24
原本不是bug,而是当时的G1还不够稳定,所以暂时在使用G1时不默认打开压缩指针。
Oracle/Sun在JDK开发上bug和RFE(request for enhancement)都用同一套bug系统管理。并不是说在bugs.sun.com看到的都是bug。 |
|
elam
2013-04-24
那在较低版本中同时启用G1和指针压缩也不会有什么问题喽?
另我们的应用会接受客户端发来的JSON指令,并反序列化成对象进行操作 这样的情况年轻代应该设置的稍大一些吧? 我测试发现貌似NewRatio=1时候的情况比NewRatio=5要好一些 大量的对象在反序列化和读取缓存中产生,然后很快就死掉。 NewRatio=1会不会太激进? |
|
RednaxelaFX
2013-04-24
elam 写道 那在较低版本中同时启用G1和指针压缩也不会有什么问题喽?
都说不够稳定嘛。没准会出啥问题。不要在低于JDK7u4的版本上用G1。 elam 写道 另我们的应用会接受客户端发来的JSON指令,并反序列化成对象进行操作
这样的情况年轻代应该设置的稍大一些吧? 我测试发现貌似NewRatio=1时候的情况比NewRatio=5要好一些 大量的对象在反序列化和读取缓存中产生,然后很快就死掉。 NewRatio=1会不会太激进? 用G1的时候最好先不要显式设置young gen大小,让G1自己判断。G1调优请参考JavaOne 2012上的专题session。 |
相关讨论
相关资源推荐
- 公式求教共4页.pdf.zip
- [201811][敏捷实践指南][Project Management Institute][著]
- STL实践指南(中)
- linux下Mysql服务启失败为什么_求教,为什么linux系统mysql服务启动失败?
- Linux下默认字体是什么,linux默认字体是什么
- c语言有没有字符什么都不输出,为什么第一个不用printf也能输出,而第二个不能呢...
- 计算机错误日志,求教啊,为什么我的系统日志里面一直有这两个错误
- c语言在值后面加f是什么意思,求教C语言int (*f)()是什么?
- 年轻人为什么要学习MySQL数据库
- 求教 | SQL的count()函数里居然能加两个参数