加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

不要被直觉误导 关于Java机能的9个谬论

发布时间:2017-07-22 11:06:11 所属栏目:教程 来源:臧秀涛编译
导读:Java的机能有某种黑邪术之称。部门缘故起因在于Java平台很是伟大,许多环境下题目难以定位。然而在汗青上尚有一种趋势,人们靠伶俐和履素来研究Java机能,而不是靠应用统计和实证推理。在这篇文章中,我但愿拆穿一些最谬妄的技能神话。

  当应用陷入逆境,而且猜疑是GC的题目时,许多应用团队的回响就是增进堆的巨细。在某些环境下,这样做可以快速收效,并且为我们留出了时刻来思量更周详的办理方案。然而,假如没有充实领略机能题目的缘故起因,这种计策反而会让工作变得更糟糕。

  思量一个编码很是糟糕的应用措施,它正在发生许多规模工具 (它们的保留时刻很有代表性,好比说是2-3秒)。假如分派率高到必然水平,垃圾收会议频仍举办,这样规模工具会被晋升到晚年月。规模工具险些是一进入大哥代,保留时刻就竣事了,从而直接衰亡,但它们直到下一次Full GC时才会被接纳。

  假如增进了应用的堆巨细,我们所做的不外是增进了相对夭折的工具进入和衰亡所用的空间。这会导致Stop-The-World停即刻间更长,对应用并无益处。

  在修改堆巨细可能调校其他参数之前,领略工具的分派和保留时刻的动态是很有须要的。没有丈量机能数据就盲目动作,只会使环境更糟糕。在这里,垃圾网络器的晚年月漫衍环境出格重要。

  结论

  当谈到Java的机能调校时,直觉经常起误导浸染。我们必要尝试数据和器材来辅佐我们将平台的举动可视化并增强领略。

  垃圾网络就是最好的例子。对付调校可能天生指导调校的数据而言,GC子体系拥有无穷的潜力;可是对付产物应用而言,不行使器材很难领略所发生数据的意义。

  默认环境下,运行恣意Java历程(包罗开拓情形和产物情形),应该至少老是行使如下参数:

  • -verbose:gc(打印GC日记);

  • -Xloggc:(更全面的GC日记);

  • -XX:+PrintGCDetails(更具体的输出);

  • -XX:+PrintTenuringDistribution(表现JVM所行使的将工具晋升进入晚年月的年数阈值)。

  然后行使器材来阐嫡志,这里可以操作手写的剧本,可以用图天生,还可以行使GCViewer(开源的)或jClarity Censum这样的可视化器材。

  作者:Ben Evans 译者:臧秀涛

  原文链接:http://www.infoq.com/articles/9_Fallacies_Java_Performance

  译文链接:http://www.infoq.com/cn/articles/9_Fallacies_Java_Performance

  关于作者

  Ben Evans是jClarity(这是一家创业公司,首要计划帮助开拓和运维团队的机能器材)的CEO。他是LJC(伦敦Java用户组)的组织者之一,也是JCP执行委员会的成员之一,JCP执行委员会认真辅佐界说Java生态体系中的相干尺度。他照旧Java Champion和JavaOne Rockstar。他与人合著了《The Well-Grounded Java Developer》一书。另外,他还常常举办果真演讲,切磋Java平台、机能、并发及相干话题。

  本文转载自其余媒体,转载目标在于转达更多信息,并不代表本网拥护其概念和对其真实性认真。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读