JAVA性能优化调查结果(第二部分)

标签: JAVA Java性能 | 发表时间:2015-07-04 21:48 | 作者:毛毛
出处:http://ifeve.com

原文地址 原作者:Nikita Salnikov Tarnovski  译者 严亮 校对:方腾飞(清英)

这是我们在2014年10月做的性能调优调查结果系列的第2部分,如果您还没读过 第1部分。我推荐先读第1部分。第2部分我们关注Java应用性能的监控问题。我们特别要尝试弄清楚下面几个问题:

  • 如何发现性能问题
  • 这些问题都有什么样的表现
  • 这些问题有多少会影响最终用户
  • 使用什么工具监控应用

发现性能问题
解决性能故障的前提是要先发现问题。我们询问受访者通过什么方式发现性能问题。286位受访者列举出406种方式。常见的几种方式如下:软件监控,支持中心或邮件,负载或压力测试:

how-did-you-find-out-about-the-performance-issue

 

考虑到很多受访者来自工程师,我们惊讶的发现超过58%的受访者提出监控软件这种方式,同时 38%的受访者提出压力测试。这个数据也证明了我在日常工作中的发现: 大多数公司没有专门人员做压力测试,创建和维护这样的测试太费时,经常会被忽略。被7位受访者归类到 “其他方式”,大部分是上线流程,例如外部性能审计。

性能问题的表现特征
这个问题我们希望弄清楚性能问题的表现特征,286 受访者列出 462 表现特征:
symptoms-of-performance-issue

到目前为止,最常见的特征是资源过度消耗(例如CPU,内存,IO等),205位受访者选择这项。显然,监控最终用户操作的方式不太常见,因为监控太过复杂,大多数的系统依然是监控资源消耗,而不是最终用户的操作。另一方面,事实上,17%的受访者只有在服务完全不可用时,才会发现性能问题,更好的说明了性能问题的严重性。

是否影响最终用户
下面我们来看这些问题是否会影响最终用户。284位受访者表现如下:
java-performance-issue-affecting-end-users

82%的受访者回答“是”,证明了我们的猜想:只有在影响到最终用户时,性能问题才会引起重视。企业方倾向于增加新功能或完善已有功能,非功能性的需求例如性能,并没有得到应有的重视。只有在性能问题严重到引起用户抱怨时,才会分配一些资源处理这些问题。

使用的监控工具
本次调查中一个有趣的情况是当前使用监控工具的分布。我们询问受访者在正式环境中使用监控工具。284 位受访者列举出365种使用过的工具,而且其中一部分受访者使用超过5种工具。
java-most-common-performance-monitoring-tools

前三个选项让人有些惊讶:

  1. 最常见的回答是“没有”,意味着21%的受访者没有使用任何工具监控正式环境
  2. 最常用的工具是仍然是最老旧的Nagios(已经15岁了)。 51 位 ( 18% )受访者表示使用过 Nagios
  3. 第3位,“其它”选项,包括了38种不同的工具只获得了1-2票。可以说这个市场非常广大,有一些工具已经开始占据市场份额。

接下来的 NewRelic, Zabbix, AppDynamics 和 Oracle Enterprise Managers 占到 7% ~13% 之间。NewRelic 和 AppDynamics 有广泛的应用是可以理解的,但 Zabbix 和 Oracle Enterprise Manager 的广泛使用有点出人意料。

值得一提的是自建应用和 JVM工具。自建应用选项不在我们的列表中,有6%的受访者提到使用自建应用监控,有点出人意料。

末尾的几个工具提到过几次,看到大厂商 APM 的工具(CA, Compuware and BMC)被最简单的工具 Pingdom 击败,有点让人惊叹。根据调查结果,我们承认 Plumbr 的排名有点偏颇,所以对这个排名不要太当真。

原创文章,转载请注明: 转载自 并发编程网 – ifeve.com

本文链接地址: JAVA性能优化调查结果(第二部分)

相关 [java 性能优化 结果] 推荐:

JAVA性能优化调查结果(第二部分)

- - 并发编程网 - ifeve.com
原文地址 原作者:Nikita Salnikov Tarnovski  译者 严亮 校对:方腾飞(清英). 这是我们在2014年10月做的性能调优调查结果系列的第2部分,如果您还没读过 第1部分. 第2部分我们关注Java应用性能的监控问题. 我们特别要尝试弄清楚下面几个问题:. 这些问题都有什么样的表现.

java 8 JVM性能优化

- - Java - 编程语言 - ITeye博客
转自:http://qindongliang.iteye.com/blog/2199633. jvm java 垃圾回收 . JVM是JAVA世界的核心,了解它有助于我们更好调试,调优和开发程序,最近散仙在看JAVA特种兵一书,看完觉得,作者写的内容还是挺不错,大家感兴趣的,也可以购买本温故而知新下.

Java 代码性能优化

- - IT瘾-geek
代码 优化,一个很重要的课题. 可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢. 这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗. 没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了. 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的.

Java Web 服务性能优化实践

- - 博客 - 伯乐在线
来源: IBM developerworks. 简介: 本文介绍如何提升 Java Web 服务性能,主要介绍了三种方法:一是采用 Web 服务的异步调用,二是引入 Web 服务批处理模式,三是压缩 SOAP 消息. 重点介绍在编程过程中如何使用异步 Web 服务以及异步调用和同步调用的差异点. 本文还示范了如何在项目中使用以上三种方法,以及各种方法所适合的应用场景.

JAVA性能优化 - IBMJDKJVM参数设置

- - 编程语言 - ITeye博客
 本文将描述IBM JDK下常用参数的设置.   -Xms:最小堆大小.   -Xmx:最大堆大小.   -Xminf and -Xmaxf:GC(垃圾回收)之后可用空间的最小值最大值.   -Xmine and -Xmaxe:堆增长的最小最大值.   -Xmint and -Xmaxt:垃圾回收占时间整个运行时间的比例,默认是5%.

10种简单的Java性能优化

- - ImportNew
你是否正打算优化hashCode()方法. Lukas Eder介绍了很多简单方便的性能优化小贴士以及扩展程序性能的技巧. 最近“全网域( Web Scale)”一词被炒得火热,人们也正在通过扩展他们的应用程序架构来使他们的系统变得更加“全网域”. 全网域被炒作的最多的是扩展负载(Scaling load),比如支持单个用户访问的系统也可以支持10 个、100个、甚至100万个用户访问.

Java程序性能优化技巧

- - CSDN博客推荐文章
如果循环次数很多,循环体内代码处理不好问题就会被放大. for(int i=0;i

Java 性能优化的五大技巧

- - ImportNew
要对你的 java 代码进行优化,需要理解 java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的. 使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧. 在我们开始之前, 你也许会担心许可的问题. Java 为 Oracle 公司所有,遵循 Oracle 的 BCL 许可,该许可证不是一个免费/开源许可证.

java语言常用性能优化技巧

- - Java - 编程语言 - ITeye博客
java语言常用性能优化技巧介绍.     java程序常用的方法有以下几种:.     1.不用new关键词创建类的实例. 用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数.

读”Java 性能优化之 String 篇“有感

- - ITeye博客
读了 IBM Developer Works上的一篇. Java 性能优化之 String 篇  感觉写得比较实用,但也有一些问题值得斟酌:. 1)关于内存空间的使用大小,虽然Java的基本类型的大小是固定的,不因运行环境而变化,但是Object overhead,以及Reference的大小是与平台相关的,比如在64bit的机器上Object overhead 应该是16 bytes,Reference是8bytes,这点应该说清楚.