程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 淺析JavaEE容器重部署時間的調查數據

淺析JavaEE容器重部署時間的調查數據

編輯:J2EE

以下是關於JavaEE容器重部署時間的調查,通過調查結果顯示,能得出一些結論,並使廣大開發人員從中獲益。

近日,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小時周被花費在了重新部署階段上?

每年有多少個40小時周被花費在了重新部署階段上?

這個數據的平均值是每年5個工作周多一點,但標准差4使得3-7的范圍更加可信。

最後一張圖表顯示了每個容器上所費重新部署時間更加詳盡的比例。我們期望這樣能顯示出使用不同容易的項目規模,從而能讓讀者大概弄清楚自己的項目會花費多少時間在重新部署上。

圖表9:: Java EE容器市場滲透率

Java EE容器市場滲透率

我們會這樣诠釋這幅圖表:

Jetty只會用在重新部署迅速的項目上。這點毫無疑問,因為Jetty不支持重新部署,只是有極快的重新啟動時間。

apache Tomcat和GlassFish可以用在相同類型的項目上。兩者都是全功能且輕量級的容器。

JBoss、Oracle Weblogic和IBM WebSphere爭奪同樣的市場定位和份額。它們的項目一般都是大而復雜。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved