`
same.zhao
  • 浏览: 32335 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

JavaEE容器重部署和重启时间

    博客分类:
  • Java
阅读更多

近日,Jevgeni Kabanov公布了一份几个月前做的关于JavaEE开发、容器和部署时间的调查结果。结果显示有超过1100人参加了这次问卷调查。这里是下载版的问卷结果。而下面是Jevgeni作出的针对每个问题答案分析的摘要。

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

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

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

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

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

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

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

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

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

  • “我不负责重新部署”
  • “我们在嵌入式jetty&activemq&atomikos以debug模式开发,而不是OracleAS上。这样,我们虽然需要重新部署并重启jetty,但不需要对OAS也这么做”
  • “我还处在项目的早期阶段,大部分时间都花在了编码和测试,而不是重新部署上——通常每个小时我会重新部署3-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小时周被花费在了重新部署阶段上?

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

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

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

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

  • Jetty只会用在重新部署迅速的项目上。这点毫无疑问,因为Jetty不支持重新部署,只是有极快的重新启动时间。
  • Apache Tomcat和GlassFish可以用在相同类型的项目上。两者都是全功能且轻量级的容器。
  • JBoss、Oracle Weblogic和IBM WebSphere争夺同样的市场定位和份额。它们的项目一般都是大而复杂。
来自:http://www.infoq.com/cn/news/2009/09/codegen-java-development
分享到:
评论

相关推荐

    笔记24-JAVAEE之Linux和云服务器

    - 通过云服务商提供的控制台或API,可以轻松创建、启动、停止、重启和销毁服务器实例。 - 使用SSH(Secure Shell)进行远程登录和管理,如`ssh user@ip_address`连接到服务器。 3. 安全配置: - 管理SSH密钥对,...

    JavaEE 6 Servlet 3.0 中的新特性

    JavaEE 6 的 Servlet 3.0 引入了一系列旨在简化开发流程和提高部署效率的新特性。这一版本的一个核心目标是减少开发人员所需编写的代码量,并通过减少配置文件的需求来降低整体复杂度。 - **简化的打包结构**:在 ...

    javaEE_Spring Boot

    同时,Spring Boot支持热部署,修改代码后,应用可以快速重启,大大减少了开发迭代的时间。 在数据库交互方面,Spring Boot与Spring Data紧密集成,提供了对JPA(Java Persistence API)的支持,使得数据库操作变得...

    基于springboot+javaEE的校园二手书交易平台源码数据库.doc

    - **JavaEE**:Java平台企业版,提供了一套用于开发和部署可移植、健壮、可伸缩且安全的服务器应用程序的API。 - **SSM**:即Spring + SpringMVC + MyBatis,这是一种常用的Java Web项目开发框架。 - **JSP**:Java ...

    搭建JavaEE运行环境.pdf

    以上步骤是搭建JavaEE运行环境的基础,完成后开发者就可以在这样的环境中编写、编译和部署Java Web应用程序。对于初学者,理解并掌握这些配置方法至关重要,因为它们是开发Java EE应用的前提条件。

    TongWeb7用户使用手册.pdf

    内容涵盖了如何查看已部署的应用、如何进行应用部署、查看和编辑应用、应用的解部署、重部署和版本管理等。其中,自动部署和热部署是TongWeb7支持的两种便捷部署方式,它们允许用户无需手动干预即可部署或更新应用,...

    搭建JavaEE运行环境.doc

    Apache Tomcat是一款开源的Servlet容器,用于部署Java Web应用程序。 ##### 2.1 Tomcat安装 - **下载Tomcat**:从Apache官方网站下载适合您系统的Tomcat版本,例如`Apache-Tomcat-6.0.exe`。 - **安装Tomcat**:...

    docker安装Tomcat 404问题的解决方案

    3. **容器持久化**:在 Docker 中,如果容器被重启,而没有保存任何更改,那么任何对容器内部的修改(如添加新的 Web 应用)都将丢失。 **解决方案步骤:** 1. **检查端口映射**: 确保你的 Docker 容器已经将 ...

    tomcat8.0.52.zip

    同时,支持应用的热部署,开发者无需重启服务器即可更新应用,提高了开发效率。 综上所述,Tomcat 8.0.52作为Java EE的一部分,提供了全面的标准支持,强大的性能,以及丰富的功能特性,为开发者构建Web应用程序...

    tongweb7.pptx

    1. **容器云和微服务**:TongWeb7 提供了对容器云和微服务的支持,使企业能够轻松实现应用的敏捷开发和部署,增强了系统的灵活性。 2. **智能管理监控**:内置的智能管理监控功能,能够实时监控应用的运行状态,...

    Java程序员必备资料合集

    - JavaSE 8引入了Lambda表达式,增强了函数式编程能力,以及日期和时间API的改进。 - JavaSE 11(Java 11)进一步优化了JVM,增强了模块系统,并移除了部分过时的库。 2. **JavaEE(Java Enterprise Edition)...

    Jboss服务器的使用说明

    - **热部署**: JBoss支持热部署功能,即在不重启JBoss的情况下部署WAR文件。 - **部署方法**: 将WAR文件直接复制到`JBoss\server\default\deploy`目录下。 #### 三、JBoss目录结构解析 **3.1 目录结构** - **bin...

    servlet-3.0最新规范pdf

    8. **部署和热部署**:Servlet 3.0规范允许在不重启服务器的情况下进行应用的部署和更新,提高了开发和调试效率。 9. **依赖注入**:Servlet 3.0引入了依赖注入(DI)的概念,通过JSR 330标准,如@Inject和@Qualifier...

    tomcat资源

    9. **热部署**:在不重启服务器的情况下,可以在"webapps"目录下添加、修改或删除应用,Tomcat会自动检测这些变化。 综上所述,Apache Tomcat是Java Web开发中不可或缺的一部分,理解其工作原理和配置方法对于...

    tomcat 发布项目步骤

    Apache Tomcat 是一款免费开源的Servlet容器,主要用于部署Java Web应用程序。它实现了Servlet和JSP规范,并且支持最新的JavaEE标准,因此在Java Web开发领域非常受欢迎。 在开始之前,确保已经安装了Java ...

    JavaWeb开发 Tomcat 安装.pdf

    JavaWeb开发中,Tomcat作为一款广泛使用的开源Java Servlet容器,是进行Web应用程序部署的关键工具。本文将详细介绍如何安装和配置Tomcat。 首先,要安装Tomcat,你需要从官方网站下载适用于Windows系统的安装版。...

    MyEclipse关联SVN下载项目到本地

    1. **安装Tomcat**:Tomcat是一个免费开源的Java Servlet容器,用于部署Java Web应用程序。 2. **安装MyEclipse**:MyEclipse是一款功能强大的Java IDE,支持Web、JavaEE等应用的开发。 3. **安装并配置Plsql**:...

    配置tomcat虚拟目录

    在Web开发领域中,Apache Tomcat服务器是一款广泛使用的开源Java Servlet容器,它支持Servlet和JavaServer Pages(JSP)技术,是进行Java Web应用程序开发的理想平台之一。为了更好地组织项目结构或提供更灵活的应用...

Global site tag (gtag.js) - Google Analytics