论坛首页 综合技术论坛

高手问答:实战Java虚拟机——JVM故障诊断与性能优化--获奖名单公布

浏览 15536 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-05-06   最后修改:2015-05-22
本期特邀《实战Java虚拟机》作者:葛一鸣(论坛ID: billykinggym)针对Java虚拟机问题给予大家解答,欢迎网友积极提问,与专家一起讨论!

活动时间:

2015.05.06--05.20

欢迎大家就Java虚拟机方面问题在活动时间内在本贴集中提问,期间专家葛一鸣(论坛ID: billykinggym)会对每一个问题认真进行答复。

活动结束后将会抽取5名幸运用户赠送《实战Java虚拟机——JVM故障诊断与性能优化》一本。

书名:《实战Java虚拟机——JVM故障诊断与性能优化》




作者简介:

葛一鸣,国家认证系统分析师,获得Oracle OCP认证。长期从事Java软件开发工作,对Java程序设计、JVM有深入的研究,对设计模式、人工智能、神经网络、数据挖掘等技术有浓厚兴趣,著有《自己动手写神经网路》电子书。

内容简介:

随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能优化》将通过200余示例详细介绍Java虚拟机中的各种参数配置、故障排查、性能监控以及性能优化。
《实战Java虚拟机——JVM故障诊断与性能优化》不仅适合Java程序员,还适合任何一名工作于Java虚拟机之上的研发人员、软件设计师、架构师。

试读样章下载地址:http://download.csdn.net/detail/broadview2006/8663511

书籍购买地址: http://www.amazon.cn/gp/product/B00V34NZBS



===============================================================  
获奖名单公布  

qing_gee、 empireghost 、demoxshiroki、 fqg05、 hunter0912 

请以上用户于2015.06.05之前将您的姓名、电话、邮寄地址通过发送站内信给ITeye管理员或者直接发邮件至webmaster@iteye.com,逾期视为自动放弃奖品哦。 
   发表时间:2015-05-06  
请教一下葛老师,Java虚拟机怎么学能比较快速入门
0 请登录后投票
   发表时间:2015-05-06  
yingzidd 写道
请教一下葛老师,Java虚拟机怎么学能比较快速入门


我觉得找一本合适的书先做系统性的了解,然后再进行一些自己的实践加深映像吧!看书的话 一般能学的比较快。
0 请登录后投票
   发表时间:2015-05-06  
葛老师,您好,我在试读的章节中看到关于直接内存分配的地方有点疑惑:
nio中使用DirectByteBuffer分配的不是jvm外的内存么,jvmGC的管理范围包括这部分么?
0 请登录后投票
   发表时间:2015-05-07  
liuheizi120 写道
葛老师,您好,我在试读的章节中看到关于直接内存分配的地方有点疑惑:
nio中使用DirectByteBuffer分配的不是jvm外的内存么,jvmGC的管理范围包括这部分么?


直接内存是会被GC的。一旦发生GC,直接内存中的垃圾是会被回收的。
0 请登录后投票
   发表时间:2015-05-07  
jvm中的方法区是怎么进行回收的?方法区属于堆内存吗
0 请登录后投票
   发表时间:2015-05-07  
jvm的内存是越大越好吗?最大可以到多大
0 请登录后投票
   发表时间:2015-05-08  
方法区不属于堆内内存。方法区内主要是Class元数据。也是可以回收的。
0 请登录后投票
   发表时间:2015-05-08  
程序员是怎么炼成的 写道
jvm的内存是越大越好吗?最大可以到多大

不是越大越好。一般够用就可以了。太大的堆回收器来 停顿时间也会很长。32位系统上 收到系统限制,一般不能超过2-3G。64位系统上,最好不要超过32G。
0 请登录后投票
   发表时间:2015-05-08  
String str1 = new String("123");
String str2 = new String("123");

System.out.println(str1.intern() == str2.intern());
对于两个字符串的常量值引用比较,我第一次没有认真看,就认为是不相等的,再重新看作者的解释就恍然大悟了,的确,比较两个在常量池中的引用,自然应该相等,不然就没有任何意义了。

不过我觉得作者对于多线程导致OOM的解答不够全面,因为之前我曾经在我的交易平台中就遇到了这个问题,通过设置-Xmx512m、-Xmx1g -Xss128k显然不是正确的解决办法,在很多时候,发生内存溢出时因为代码逻辑或者代码隐藏有漏洞,而正是这些隐藏漏洞导致出现了OOM,如果这样笼统让大家更改参数去避免bug,可能会误导大家。

小小建议,我只是站在自己的角度思考问题,如有不当,还请谅解。

另外,我想推荐一款IBM的内存溢出分析工具,作者说的两款工具我没有实战过,不过IBM的这款工具的确还是很不错的,是通过Java写的,ftp://public.dhe.ibm.com/software/websphere/appserv/support/tools/HeapAnalyzer/ha456.jar。

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics