Java EE容器使用情况调查:最终结果

开发 后端
ZeroTurnAround小组于今年6月曾做过一次有关Java EE容器的调查,关注使用情况以及重新部署的情况等等。近日,这份调查的最终结果出炉了。

还记得7月份51CTO发布过ZeroTurnAround小组进行的一次有关Java EE容器的调查么?近日,最终版的调查结果出炉了,涵盖了超过1100人的调查结果。这里是下载版的问卷结果。而下面是Jevgeni作出的针对每个问题答案分析的摘要,由InfoQ的张凯峰整理编译。

问卷的第一个问题是:“你在目前参与的最大型项目中使用的是什么容器?”

图表1:哪个容器是最常使用的?

哪个容器是最常使用的

这里没有包括那些得分不到10分的容器。毫无悬念,Apache的Tomcat占据了头把交椅,而JBoss紧随其后。开源的服务器占到了70%的比例。虽然不能把这样的比例直接等同于容器们的市场份额,但这样的结果跟SD Time作出的研究结果有异曲同工之妙,在他们的调查中允许人们选择多个容器。

第二个问题是:“重启你的容器并重新部署应用要花费多少时间?”

图表2: “重启你的容器并重新部署应用要花费多少时间”(横轴是分钟)

重启你的容器并重新部署应用要花费多少时间

这样,计算出平均时间在2.5分钟左右,这跟事先评估的大概1分钟相去甚远。

第三个问题:“编码一个小时,你会重新部署几次?”

图表 3:“编码一个小时,你会重新部署几次?

编码一个小时,你会重新部署几次

对于那些回答“我不需要重新部署”的人,我们询问了他们是如何做到的,答案有以下这些:

  1. “我不负责重新部署”
  2. “我们在嵌入式jetty&activemq&atomikos以debug模式开发,而不是OracleAS上。这样,我们虽然需要重新部署并重启jetty,但不需要对OAS也这么做”
  3. “我还处在项目的早期阶段,大部分时间都花在了编码和测试,而不是重新部署上——通常每个小时我会重新部署3-4次”
  4. “我们使用JavaRebel,而它真是太棒了!”

接着,我们做了一下数据处理。用一个数字代表次数间隔(比如3.5次代表3-4次),并把每小时的部署次数与一次重新部署所费时间相乘(基本上就是图2和图3相乘),这样就得出了在开发过程中每小时会花费的重新部署时间:

图表4:“ Java开发者在一个小时编码过程中,花费多长时间来重新部署(原始数据)?”

花费多长时间来重新部署

平均时间是12分半,占到了整个开发时间的20%还多点。然而,标准差超过14,这意味着真实的比例变化很大。我们想要显示出更加精确的数据,在分析过参与调查的人们在每个答案上的选择所产生的比例数据后,我们得到了更新后的图表:

图表5:“ Java开发者在一个小时编码过程中,花费多长时间来重新部署?(更加精确的数据)”

更加精确的数据

这样,平均时间就是10.5分钟,标准差是8,这样的数据更令人信服。这个时间占据了全部开发时间的17.5%,这远比我们预期的要高。这些干净的数据也将用作接下来的分析。

接着,我们基于每个容器进行了数据分析。下面是我们所发现的:

图表6:每个容器要花费多少时间来重新部署?

每个容器要花费多少时间来重新部署

可以看到,Jetty最快仅需要5.8分钟,而IBM的WebSphere排在了末尾,时间几乎是Jetty的两倍还多。但需要注意的是,虽然Jetty启动时间要比WebSphere要看,但最大的不同很可能是因为部署的应用规模和其中使用到的技术。

接下来,我们拥有了几乎一模一样的图表,但数字显示的是开发时间的一个比例。

图表7:每个容器中,花在重新部署上的开发时间比例是多大?

花在重新部署上的开发时间比例是多大

下面这张图,显示了按40小时每周的时间算,每年要消耗在重新部署上的周数对比。

图表8:每年有多少个40小时周被花费在了重新部署阶段上?

每年有多少个40小时周被花费在了重新部署阶段上

这个数据的平均值是每年5个工作周多一点,但标准差4使得3-7的范围更加可信。

最后一张图表显示了每个容器上所费重新部署时间更加详尽的比例。我们期望这样能显示出使用不同容易的项目规模,从而能让读者大概弄清楚自己的项目会花费多少时间在重新部署上。

图表9:: Java EE容器市场渗透率

Java EE容器市场渗透率

我们会这样诠释这幅图表:

  1. Jetty只会用在重新部署迅速的项目上。这点毫无疑问,因为Jetty不支持重新部署,只是有极快的重新启动时间。
  2. Apache Tomcat和GlassFish可以用在相同类型的项目上。两者都是全功能且轻量级的容器。
  3. JBoss、Oracle Weblogic和IBM WebSphere争夺同样的市场定位和份额。它们的项目一般都是大而复杂。

【编辑推荐】

  1. 四大Java EE容器之简单比较
  2. Java EE容器调查:Tomcat大受欢迎 WebLogic成时间杀手
  3. 从Java EE的三个层次看高质量的系统标准
  4. Spring创始人:看衰Java EE
  5. Java EE 6遥遥无期 预览版两极分化
责任编辑:yangsai 来源: InfoQ
相关推荐

2020-12-07 18:19:46

Common Lisp方言编程

2010-10-14 16:10:28

MySQL排序

2022-07-13 14:26:26

Linux

2010-05-12 15:14:59

subversion管

2015-11-09 15:32:34

TorTor网络隐私网络

2018-07-06 14:52:49

Docker容器云服务

2017-01-18 21:57:14

2022-11-11 14:48:41

内存top命令

2010-11-16 11:40:04

Oracle查询表空间

2009-12-14 17:25:20

Linux操作系统

2014-04-24 16:26:31

UbuntuUbuntu 磁盘Linux基础

2009-02-03 09:49:00

FTP空间共享

2017-11-30 18:42:22

PythonCPU脚本分析

2009-06-30 14:11:00

Hibernate缓存

2010-02-03 17:16:58

Linux内存使用

2010-06-02 11:06:15

Linux 内存监控

2021-03-26 07:17:38

Linux命令磁盘

2010-09-26 12:45:29

2010-02-01 15:47:04

C++内联函数

2020-06-17 14:10:01

Python内存程序
点赞
收藏

51CTO技术栈公众号