Java性能调优调查结果(第一部分)

我们在2014年10月进行了Java性能调优调查。该调查的主要目的是收集对Java性能世界的见解,以改进Plumbr产品。 但是,我们也很高兴与您分享有趣的结果。 我们收集的数据为进行冗长的分析提供了素材,因此我们决定将结果划分为一系列博客文章。 这是第一个,试图回答以下问题:

  • 谁处理Java性能问题?
  • Java性能问题有多广泛?
  • 解决这些问题需要多长时间?
  • 这个时间花在哪里?

回答我们调查的工程角色

在2014年10月,共有308名受访者接听了我们的电话并完成了调查。我们还根据其角色对受访者进行了介绍,以下图表说明了使用的不同标题:

java-performance-tuning-roles

进一步放大此分布,可以说数据是由响应者角色分布的,如下所示:

  • 73%工程
  • 6%的运营
  • 2%的质量检查
  • 14%管理
  • 5%无法分类

我们可以得出结论,该调查主要基于工程角色,而管理层,运营和质量保证人员则略有不同。

93%的受访者在过去一年中遇到了绩效问题

“在过去的12个月中,您是否遇到过Java性能问题?” 这是为其余调查奠定整体基础的第一个问题。 在308位受访者中,有286位( 占93%)确认他们在去年遇到了Java性能问题 。 对于这286人,我们在调查中还有9个问题需要回答。

对于其余22位在去年没有遇到任何Java性能问题的人,这也是该调查的最后一个问题。

我们确实承认,回答我们调查的人员的选择可能有偏见,并且这个数字并不真正代表Java世界的地位。 毕竟,在构建性能监视工具时,那些经常在您的网站上徘徊的人更可能最近参与了性能监视领域。 因此,我们不能真正宣称93%的Java应用程序工作人员每年都会遇到性能问题。

我们绝对可以断言,我们从286个有关Java应用程序性能问题的独特示例中获取了数据。 因此,让我们看看问题到底是什么。

大部分时间都花在复制,证据收集和根本原因分析上。

在308位受访者中,有156位选择回答“过程中最耗时的部分”的问题。 这是一个自由文本问题,我们能够对146个答案进行分类。

这些答案被证明是调查中最有趣的结果之一。 令人惊讶的是,有76%的受访者在“ 试图复制-收集证据-理解证据-将证据与根本原因联系起来 ”循环中挣扎最多:

Java性能调整最耗时的活动

  • 受访者的20% 大部分的时间试图重现该问题,这样他们就可以开始收集证据
  • 25%的人在尝试收集证据 (例如日志文件或堆/线程转储)和理解证据方面最费力
  • 30%花费的大部分时间 试图 证据源代码/配置链接到的根本原因

公平地说,您还应该注意,有相当多的受访者(13%)声称,为该问题构建实际的解决方案是该过程中最耗时的部分。 尽管这是一个可观的数量,但仍比大多数时间花费在试图找出根本原因的恶性循环中的用户数量少五倍多。

您花了多长时间解决性能问题?

在本节中,我们要求受访者量化他们试图发现根本原因时所面临的痛苦。 同样,我们有284位受访者回答了这个问题:

Java性能调整花费的时间调整

答案证实,即使某些情况很容易检测和排除故障,但大多数性能问题还是很难解决的。 荣誉给个答复谁发现,在不到一个小时的固定的问题,但让我们一会儿,专注于48名受访者停止(的情况下,17%),对他们来说,跟踪下来,并解决性能问题意味着多了一个花了一个月。

解释以上数据的另一种方法是查看花费的中位数和平均时间:

  • 中位数时间落在“超过一天但不到一周”的范围内,意味着花了几天的时间进行检测和故障排除。
  • 由于缺少上界,因此平均值的计算有些棘手,但是当假设“一个多月”转化为“恰好两个月”时,用于查找和修复根本原因的平均时间为80个小时

如果我们看一下所花费的总时间,这些数字看起来就更令人恐惧了– 284名受访者总共花费22,600小时来检测和解决单个性能问题。 这相当于超过130个工作月 。 仅仅考虑这个数字就清楚地表明该领域迫切需要更好的解决方案。

翻译自: https://www.javacodegeeks.com/2014/11/java-performance-tuning-survey-results-part-i.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net ViewState详解

ViewState是一个被误解很深的动物了。我希望通过此文章来澄清人们对ViewState的一些错误认识。为了达到这个目的,我决定从头到尾详细的描述一下整个ViewState的工作机制,其中我会同时用一些例子说明我文章中的观点,结论。比如我会用静态控件(…

OSGi Testsuite:引入类名过滤器

OSGi Testsuite是一个JUnit测试运行程序 ,它动态地收集要执行的测试类。 它已经由我的同伴Rdiger大约一年前出版,并且已经在某些项目中证明是有用的。 但是对于gonsole,我们必须使用一个难看的补丁,因为1.0版仅支持.*Test后缀匹配…

javascript数字验证(转)

转自http://www.cnblogs.com/lovelace821/archive/2009/04/27/1444654.html js验证数字 javascript限制输入的只能是数字,判断event.keyCode的值,并将它限定只能为数字,如果不是数字,则返回错误,如果是数字&#xff0c…

需要微缓存吗? 营救记忆

缓存解决了各种各样的性能问题。 有很多方法可以将缓存集成到我们的应用程序中。 例如,当我们使用Spring时,可以轻松使用Cacheable支持。 非常简单,但我们仍然必须配置缓存管理器,缓存区域等。有时,就像用大锤砸破坚果…

es6 对象的扩展

1.属性的简洁表示法function f(x,y) {return {x,y};}// 等同于function f(x,y){return {x:x,y:y};}f(1,2)   // Object {x:1,y:2}例如:let birth 2000/01/01;const Person {name: 张三,// 等同于 birth: birthbirth,// 等同于hello: function()...he…

windows下命令行修改系统时间;修改系统时间的软件

找了很久,都没有找到,还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片. 而我由于某些原因想自动化修改系统时间,所以找windows下修改系统时间的软件 没有找到. 有一个 意天禁止修改系统时间开发包(系统时间保护组件) 1.0.0.1 ,可以禁…

如何摆脱JavaFX中的重点突出显示

今天,有人问我是否知道摆脱JavaFX控件(分别是按钮)的焦点突出的方法: 有关此问题的大多数文章和提示建议添加: .button:focused {-fx-focus-color: transparent; }但是使用这种样式,仍然会留下这样的光芒…

extjs 基础部分

创建对象的方法: 使用new 关键字创建对象。 new classname ([config]) 使用Ext.create方法创建。 Ext.create(classname,[config]) new Ext.Viewport({}) 修改为Ext.create(Ext.Viewport,{}) Ext.widget 或Ext.createWidget 创建对象 使用Ext.ns 或者Ext.namespace…

Java时区处理初学者指南

基本时间观念 大多数Web应用程序必须支持不同的时区,而正确处理时区绝非易事。 更糟糕的是,您必须确保各种编程语言(例如,前端JavaScript,中间件中的Java和作为数据存储库的MongoDB)之间的时间戳是一致的。…

Android工具HierarchyViewer 代码导读(3) -- 后台代码

在上文中&#xff0c;我们讲解了如何把HierarchyViewer的项目导入到Eclipse中&#xff0c;以便更高效阅读代码。本文将讲解HierarchyViewer的后台代码&#xff0c;建议大家可以先阅读<Android工具HierarchyViewer代码导读(1) -- 功能实现演示>一文, 其中的代码演示了Hier…

Extjs 数据代理

Ext.data.proxy.Proxy 代理类的根类 客户端代理&#xff1a; 1.LocalStorageProxy&#xff1a;将数据存储在localStorage中&#xff0c;此种方式可以持久的将数据存储在客户端 要使用代理&#xff0c;我们首先要有一个数据模型类&#xff0c;我们定义一个简单的Person类&…

WildFly 8.2.0.Final版本–更改的快速概述

自从我上次在此博客上写作以来已经有一段时间了。 尽管我有一些我想写博客的主题&#xff0c;但我只是没有足够的时间来做。 在看到JBoss社区成员之一的邮件后&#xff0c;我终于决定今天写这篇文章&#xff0c;检查为什么最近这里没有任何更新&#xff08;感谢检查&#xff0c…

Ph.D Grind 阅读感想 By 张雄

#Ph.D Grind是Xin Zou老师推荐的一本书&#xff0c;邮件里本来说是要在三周内读完的&#xff0c;不料看了个Preface之后再也放不下&#xff0c;最终一口气地看完了。 #看完之后很有感触&#xff0c;之前也阅读过一本讲如何规划研究生涯的书&#xff0c;但是那是一本从教授的角度…

VUE 入门基础(3)

三&#xff0c;模板语法 Vue将模板编译成虚拟DOM渲染函数&#xff0c;结合响应系统&#xff0c;在应用状态改变时&#xff0c;vue能够智能地计算出重新渲染组件的最小代价并DOM操作上。 插值&#xff0c;文本 数据绑定常见的形式就是使用“Mustache”语法&#xff08;双大括号&…

SVG 使用

SVG即Scalable Vector Graphics可缩放矢量图形&#xff0c;使用XML格式定义图形&#xff0c; 主要优势在于可缩放的同时不会影响图片的质量。 SVG 在html 中常用的方法 1.使用<img>元素来嵌入SVG图像 <img src”http://www.w3school.com.cn/svg/rect1.svg” width”…

超越JAX-RS规范:Apache CXF搜索扩展

在今天的帖子中&#xff0c;我们将超越JAX-RS 2.0规范&#xff0c;并探索Apache CXF &#xff08;流行的JAX-RS 2.0实现之一&#xff09;为REST服务和API开发人员提供的有用扩展。 特别是&#xff0c;我们将讨论使用OData 2.0查询过滤器子集的搜索扩展。 简而言之&#xff0c;…

阿里巴巴使命、愿景、价值观、绩效管理中的六大价值观、

阿里巴巴的使命 让天下没有难做的生意 阿里巴巴的愿景 分享数据的第一平台幸福指数最高的企业“活102年”阿里巴巴的价值观 我们坚持“客户第一、员工第二、股东第三”。 阿里巴巴的六脉神剑&#xff08;绩效管理中的六大价值观&#xff09; 公司的“六脉神剑” 客户第一&#…

Angularjs基础(十)

ng-blur       描述&#xff1a;规定blur 事件的行为       实例&#xff1a;当输入框失去焦点的(onblur)时执行表达式&#xff1a;         <input ng-blur"count count 1" ng-init"count0"/>         <h1>{{co…

在命令行上操作JAR,WAR和EAR

尽管Java IDE和许多图形工具使查看和操作Java归档文件&#xff08;JAR&#xff0c;WAR和EAR&#xff09;文件的内容比以往更加容易&#xff0c;但有时我还是更喜欢使用命令行jar命令来完成这些任务。 当我必须重复做某事或作为脚本的一部分来做时&#xff0c;尤其如此。 在本文…

C#语言使用多态(接口与override) ——帮您剔除对面向对象多态性的疑惑

多态是面向对象编程中三大机制之一,其原理建立在"从父类继承而来的子类可以转换为其父类"这个规则之上,换句话说,能用父类的地方,就能用该类的子类.当从父类派生了很多子类时,由于每个子类都有其不同的代码实现,所以当用父类来引用这些子类时,同样的操作而可以表现出…