Java世界的当前状态:最流行的编程语言之一的趋势和事实

译者的话:尽管本文有点广告性质,但作者还是提供了有关Java生态系统当前状态的一些非常有趣的统计数据。我们希望这些统计数据对读者有用。


本文的一个版本以前也已发布在The New Stack上


现代软件行业异常庞大,因此不缺少编程语言的选择。但是,即使在相同的技术栈中(如Java生态系统),也很难获得有关市场状况的有用见解。Java取得了令人难以置信的成功,并且几乎在每个主要的工业和经济领域中都得到了应用,这在某种程度上使得很难就Java世界的当前状态找到一种观点。


但这并不意味着不能尝试粗略评估这一领域的状况。


每天,数千万的Java虚拟机(JVM)将其数据传输到New Relic。为了制作此报告,我们匿名化并故意减小了此数据的粒度,以使我们看到Java生态系统的广阔视野。我们在报告中也没有包含非常详细的信息,这些信息可以帮助黑客和其他攻击者进行攻击。


我们希望这些观察将提供一些新的上下文信息,并为思考Java生态系统的当前状态提供参考。考虑到这一思想,我们研究了以下问题:


  • 商业使用什么版本的Java?
  • 哪些Java供应商最受欢迎?
  • 最常用的垃圾收集算法是什么?
  • 最常见的内存设置是什么?

Java 8仍然是标准的。还是标准


, Java : “ Java ?”. :


Java%
140.00
130.32
120.17
1111.11
100.48
90.18
842.02
838.63
83.83
72.54
pre-70.73
Non-LTS1.14

. Java 8 :


  • : , CVE
  • : , Java
  • : , ,

, Java 11 — LTS — , , , , Java 8 ( LTS). -LTS — Java 7 (2.54%) , Java 8, (1.14%)


-Oracle


, — Java , Oracle.


%
Oracle74.78
AdoptOpenJDK7.06
IcedTea5.30
Azul2.96
IBM2.37
Amazon2.18
Unknown1.96
Pivotal1.40
SAP0.74
Sun0.58
Debian0.54
Other0.10

Oracle 75% Java. AdoptOpenJDK — . ( , , ), , AdoptOpenJDK , .


, NewRelic AdoptOpenJDK, (33,19%) — Java 11. Java 11 AdoptOpenJDK , .


. : NewRelic — AdoptOpenJDK .



, - , — Java . , :


GC%
Parallel57.77
G124.99
CMS17.20
ZGC0.04
Shenandoah<0.01

, Java. , JVM, :


  • CMS , G1 Java 8 (14.56% 12.59%)
  • CMS , Parallel Java 11 (3.96% 0.20%)
  • CMS 35 , ZGC Java 11


Java — . — ( — Xms Xmx). 30 , , , .


XmsXmx%
2048MB2048MB8.84
512MB512MB8.74
1024MB1024MB5.76
4096MB4096MB
1024MB
2.83
2.60
819MB819MB2.59
8192MB8192MB
512MB
2.55
2.40
2340MB2340MB2.19
256MB512MB2.17
64MB256MB
2048MB
3072MB
4096MB
2.11
2.06
2.02
1.77
6144MB6144MB1.61
3072MB3072MB1.55
512MB1024MB1.54
1024MB2048MB1.50
256MB1024MB1.38
492MB492MB1.36
2028MB2028MB
256MB
1.20
1.14
96MB1024MB0.89
10240MB10240MB0.84
256MB256MB0.79
512MB2048MB0.78
120MB256MB0.77
768MB768MB0.63
16384MB16384MB0.63
5120MB5120MB0.63

, , JVM , , .


, , 16GB (.. Xmx >= 16GB) — 3.3% .


“ ” — Xms Xmx, — . , 33.48% JVM .


, , , -.


, JVM , , .


,


, , :


  1. 7.35% Java 8 JVM ( — MaxPermSize)
  2. 6.78% JVM
  3. 8.07% JVM
  4. 2.54% JVM “” , , , Parallel G1
  5. 2.59% JVM 819MB. — 8192MB (.. 8GB). — .


, , . , , NewRelic. Java , , , .


, , , . , Java (, ) , .


, JVM , , Java .


Java , Java . “ ” . , , , , RedMonk’, , .


NewRelic — — . NewRelic ( ) , NewRelic, , .


, .


All Articles