仓酷云
标题:
JAVA编程:G1,CMS及PARALLEL GC的对照仓酷云
[打印本页]
作者:
老尸
时间:
2015-1-18 11:19
标题:
JAVA编程:G1,CMS及PARALLEL GC的对照仓酷云
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。这篇文章恰好接上前一年我们做的一次实际情况下分歧GC算法功能对照的实验。此次我们仍旧举行一样的实验,不外增添了对G1接纳器的测试,而且在多个平台举行测试。往年我们测试的渣滓接纳器有以下几个:
-XX:+UseParallelOldGC
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
运转情况
我们利用现成的JIRA义务来运转这个测试。选择它的缘故原由十分复杂——撤除Minecraft(一款出名网游),恼怒的小鸟,和Eclipse不说,JIRA应当是最出名的Java使用程序了。而且和其余候选者比拟,它更能代表我们一样平常的营业处置流程——究竟来讲Java用得最多的中央仍是在服务真个Java企业级使用。
影响我们决意的另有一个要素——Atlassian的工程师们公布了一个打包好的JIRA压测剧本。我们能够间接用它来举行我们的基准测试。
我们细心的将最新版的JIRA6.1解压,然后把它安装到MacOSXMavericks上。最初间接利用默许的内存参数设置来运转这个测试程序。Atlassian团队的家伙已帮我们把参数也设置好了:
-Xms256m-Xmx768m-XX:MaxPermSize=256m
复制代码
这个程序利用了JIRA的罕见的几种分歧功效——创立义务,分派义务,剖析义务,查找及发明义务,等等。总的运转工夫是30分钟。
我们利用了三种分歧的GC算法来运转这个测试——Parallel,CMS,和G1。每次测试都从头启动一个新的JVM实例,并事前把存储恢复到一样的形态。统统筹办停当后我们才入手下手启动压测。
了局
每次测试我们都经由过程-XX:+PrintGCTimeStamps-Xloggc:/tmp/gc.log-XX:+PrintGCDetails来搜集GC日记,最初利用GCViewer来剖析内里的数据。
汇总后的了局以下。注重测试了局的单元是毫秒。
年ParallelCMSG1TotalGCpauses209301887062000MaxGCpause7216450
申明
起首来看ParallelGC(-XX:+UseParallelOldGC)。在这30分钟的测试过程当中,并行搜集器的GC也许停息了有21秒。最长的一次花了721毫秒。我们来以这个做为基准:从总的运转工夫来看,GC周期削减了1.1%的吞吐量。最长的提早工夫也许是721毫秒。
下一个:CMS(-XX:+UseConcMarkSweepGC)。在30分钟的测试中,因为GC而丧失的工夫是19秒。吞吐量和上一次的并行形式下的差未几。不外时延方面有了分明的改良——最坏的情形下的时延削减了10倍!如今最年夜的GC停息工夫只要64毫秒。
最初一次测试用的是最新最潮的GC算法——GC(-XX:+UseG1GC)。运转的是一样的测试程序,不外了局的吞吐量则严峻下落了。此次测试使用在GC上消费的工夫凌驾了一分钟。和CMS只要1%的开支比拟,此次的吞吐量下落了有3.5%。不外假如你不在意吞吐量而更在意时延的话——这方面它和后面体现最好的CMS比拟另有20%的提拔——G1接纳器最长的停息工夫只要50ms。
结论
想经由过程这么一次实验来得出一个结论长短常伤害的。假如你的工夫充分又有响应的才能的话——你应当在本人的情况中详细情形详细剖析,而不是利用一刀切的办法。
不外假如说非要得出一个结论,我以为说CMS仍旧是最好的默许选择。G1的吞吐量其实是太差,和它所削减的那点时延比拟其实不划算。
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。
作者:
灵魂腐蚀
时间:
2015-1-20 20:10
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
不帅
时间:
2015-1-22 09:17
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者:
若相依
时间:
2015-1-31 05:20
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者:
活着的死人
时间:
2015-1-31 05:20
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者:
透明
时间:
2015-1-31 07:10
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者:
飘灵儿
时间:
2015-1-31 21:18
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者:
分手快乐
时间:
2015-2-6 22:50
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
作者:
山那边是海
时间:
2015-2-12 06:21
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者:
飘飘悠悠
时间:
2015-2-17 17:21
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
小魔女
时间:
2015-3-5 21:14
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者:
因胸联盟
时间:
2015-3-12 15:10
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
海妖
时间:
2015-3-19 23:21
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2