`
RednaxelaFX
  • 浏览: 3016584 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

昨天杭州QCon上我的JVM分享的演示稿

阅读更多
发在SlideShare上了:http://www.slideshare.net/RednaxelaFX/jvm-taobao
这次分享难得完全没超时。计时器上显示的是58分钟讲完。呼…

之前在微博上也说了,这边想重复几句:

感谢昨天下午能来参加我的分享的同行们,更感谢能听到最后的 很高兴能与大家交流。这次分享的内容可能比较偏,主要是为了避开跟Twitter的Attila Szegedi的分享重叠,希望能给大家看到些不一样的东西。实际上普通的GC调优工作我们也有做,不过Attila的分享已经很赞,同一天内两个session都讲同一件事就不那么有趣了。

演示稿里的内容是我们整个组的工作内容,并非我自己一个人的。这点想强调一下

分享中言语上如果惹到一些前辈不满了,请多谅解。e.g. 并不是说《深入Java虚拟机(第二版)》那样的书内容浅,只是我们组的工作内容不是在那个层面上而已。这边也有许多的那个层面上工作的同事。

这次QCon结识了许多新朋友,了解到了不少有趣的信息。即便是阿里系内部,别的组在做什么我们也并不完全清楚,这次还顺便了解到了许多兄弟部分的工作内容,相当高兴。

P.S. 我们组随时欢迎新鲜血液的加入
分享到:
评论
15 楼 RednaxelaFX 2012-06-06  
fh63045 写道
这么能加入?
求入口
求大腿

嗯?请问是有兴趣加入我们组么?如果是的话可以用站内信发简历给我,我可以帮忙发到组里。
今年阿里系基本上不招人所以今年或许不是一个很好的加入时间。不过如果有非常好的候选人我们还是非常欢迎加入的
14 楼 fh63045 2012-06-06  
这么能加入?
求入口
求大腿
13 楼 RednaxelaFX 2012-01-26  
deyimsf 写道
请问在现有的HotSpot虚拟机中是不是除了CMS和G1所有的gc应该都是stop-the-world?

嗯。或者换个说法,现在的HotSpot VM里只有CMS和G1是并发的,其它都不是并发的。这里的“并发”指的是GC与应用程序之间的关系。以前的HotSpot VM里还有一种incremental collector叫做train collector,后来被CMS替代了
12 楼 deyimsf 2012-01-25  
RednaxelaFX 写道
buaasss 写道
2011-10-31T20:42:33.187+0800: 0.754: [GC 0.754: [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs]

这儿一并请教撒迦几个困扰几天的问题,DefNew应该不是gc collector的名字吧?这和
sun上面的对gc格式的解释不一样呀?

另一个问题是,为什么有时候full gc的时候会打印为[full gc...]而有时候只打印为[gc...]呢?

DefNew是使用serial young collector时young generation这个space的名字,意思是default new generation。
对应的,如果使用parallel young collector,那么young generation的space的名字就是ParNew,意思是parallel new generation。
而如果是在用ParallelScavenge系的GC(-XX:+UseParallelGC或-XX:+UseParallelOldGC),那么young gen的名字是PSYoungGen。

stop-the-world的full GC会显示[Full GC...,不是stop-the-world的GC或不是full GC的话则就是[GC...


请问在现有的HotSpot虚拟机中是不是除了CMS和G1所有的gc应该都是stop-the-world?
11 楼 大海lb 2011-12-09  
你好,经常来这里看师傅级人的帖子和文章,小弟马上大学毕业,一直喜欢Java,请教,能否给几点学习的建议,现在我还停留在看jdk源代码层面上,对jvm也就在看《深入Java虚拟机》的层面,谢谢!特别崇拜像你一样的技术牛人,以后也想成为类似你的牛人,求指点!
10 楼 wangtuoy 2011-11-24  
wangtuoy 写道
不错不错。我是王拓
对了,问个小问题,莫枢同学。。
jvm在gc的时候,比如用serial+serial old,里面的survivor:to space不被使用。。
allocation1 = new byte[_1MB/8];
allocation6 = new byte[_1MB/8];
allocation2 = new byte[5*_1MB];
allocation2 = null;
allocation3 = new byte[4*_1MB];
allocation4 = new byte[3*_1MB];
allocation3 = null;
allocation4 = null;
allocation1 = null;//加上或者去掉,只有survivor:from space有变化。
allocation5 = new byte[_1MB/4];
allocation2 = new byte[4*_1MB];

我看好多资料都说,当gc工作的时候,会把一个survivor和eden中的存活对象,拷到另一个survivor.但是好像看不到这个过程。

谢啦。。

补充下:jvm的参数:Xms20M Xmx20M Xmn10M XX:SurvivorRation=8
9 楼 wangtuoy 2011-11-24  
不错不错。我是王拓
对了,问个小问题,莫枢同学。。
jvm在gc的时候,比如用serial+serial old,里面的survivor:to space不被使用。。
allocation1 = new byte[_1MB/8];
allocation6 = new byte[_1MB/8];
allocation2 = new byte[5*_1MB];
allocation2 = null;
allocation3 = new byte[4*_1MB];
allocation4 = new byte[3*_1MB];
allocation3 = null;
allocation4 = null;
allocation1 = null;//加上或者去掉,只有survivor:from space有变化。
allocation5 = new byte[_1MB/4];
allocation2 = new byte[4*_1MB];

我看好多资料都说,当gc工作的时候,会把一个survivor和eden中的存活对象,拷到另一个survivor.但是好像看不到这个过程。

谢啦。。
8 楼 buaasss 2011-11-01  
RednaxelaFX 写道
buaasss 写道
2011-10-31T20:42:33.187+0800: 0.754: [GC 0.754: [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs]

这儿一并请教撒迦几个困扰几天的问题,DefNew应该不是gc collector的名字吧?这和
sun上面的对gc格式的解释不一样呀?

另一个问题是,为什么有时候full gc的时候会打印为[full gc...]而有时候只打印为[gc...]呢?

DefNew是使用serial young collector时young generation这个space的名字,意思是default new generation。
对应的,如果使用parallel young collector,那么young generation的space的名字就是ParNew,意思是parallel new generation。
而如果是在用ParallelScavenge系的GC(-XX:+UseParallelGC或-XX:+UseParallelOldGC),那么young gen的名字是PSYoungGen。

stop-the-world的full GC会显示[Full GC...,不是stop-the-world的GC或不是full GC的话则就是[GC...

感谢撒迦的详细解答:)问题弄懂了一部分,自己还得再多找点资料研究下
7 楼 RednaxelaFX 2011-11-01  
buaasss 写道
2011-10-31T20:42:33.187+0800: 0.754: [GC 0.754: [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs]

这儿一并请教撒迦几个困扰几天的问题,DefNew应该不是gc collector的名字吧?这和
sun上面的对gc格式的解释不一样呀?

另一个问题是,为什么有时候full gc的时候会打印为[full gc...]而有时候只打印为[gc...]呢?

DefNew是使用serial young collector时young generation这个space的名字,意思是default new generation。
对应的,如果使用parallel young collector,那么young generation的space的名字就是ParNew,意思是parallel new generation。
而如果是在用ParallelScavenge系的GC(-XX:+UseParallelGC或-XX:+UseParallelOldGC),那么young gen的名字是PSYoungGen。

stop-the-world的full GC会显示[Full GC...,不是stop-the-world的GC或不是full GC的话则就是[GC...
6 楼 buaasss 2011-10-31  
多谢,多谢,刚刚测试了的:)
2011-10-31T20:42:33.187+0800: 0.754: [GC 0.754: [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs]

这儿一并请教撒迦几个困扰几天的问题,DefNew应该不是gc collector的名字吧?这和
sun上面的对gc格式的解释不一样呀?

另一个问题是,为什么有时候full gc的时候会打印为[full gc...]而有时候只打印为[gc...]呢?
5 楼 RednaxelaFX 2011-10-31  
buaasss 写道
多谢分享,
使用了什么命令,使gc的log中打印了绝对时间,而不是相对jvm的启动时间(如ppt的39页)?

PrintGCDateStamps打印的是日期,PrintGCTimeStamps打印的是相对时间
4 楼 buaasss 2011-10-31  
多谢分享,
使用了什么命令,使gc的log中打印了绝对时间,而不是相对jvm的启动时间(如ppt的39页)?
3 楼 sgano1 2011-10-27  
谢谢分享
内容很不错,ppt做的也挺好
2 楼 134564 2011-10-27  
E文不好..
1 楼 richard_2010 2011-10-25  
已下,谢谢撒迦。

相关推荐

Global site tag (gtag.js) - Google Analytics