- 浏览: 3048991 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
发在SlideShare上了:http://www.slideshare.net/RednaxelaFX/jvm-taobao
这次分享难得完全没超时。计时器上显示的是58分钟讲完。呼…
之前在微博上也说了,这边想重复几句:
感谢昨天下午能来参加我的分享的同行们,更感谢能听到最后的 很高兴能与大家交流。这次分享的内容可能比较偏,主要是为了避开跟Twitter的Attila Szegedi的分享重叠,希望能给大家看到些不一样的东西。实际上普通的GC调优工作我们也有做,不过Attila的分享已经很赞,同一天内两个session都讲同一件事就不那么有趣了。
演示稿里的内容是我们整个组的工作内容,并非我自己一个人的。这点想强调一下
分享中言语上如果惹到一些前辈不满了,请多谅解。e.g. 并不是说《深入Java虚拟机(第二版)》那样的书内容浅,只是我们组的工作内容不是在那个层面上而已。这边也有许多的那个层面上工作的同事。
这次QCon结识了许多新朋友,了解到了不少有趣的信息。即便是阿里系内部,别的组在做什么我们也并不完全清楚,这次还顺便了解到了许多兄弟部分的工作内容,相当高兴。
P.S. 我们组随时欢迎新鲜血液的加入
嗯?请问是有兴趣加入我们组么?如果是的话可以用站内信发简历给我,我可以帮忙发到组里。
今年阿里系基本上不招人所以今年或许不是一个很好的加入时间。不过如果有非常好的候选人我们还是非常欢迎加入的
嗯。或者换个说法,现在的HotSpot VM里只有CMS和G1是并发的,其它都不是并发的。这里的“并发”指的是GC与应用程序之间的关系。以前的HotSpot VM里还有一种incremental collector叫做train collector,后来被CMS替代了
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?
补充下:jvm的参数:Xms20M Xmx20M Xmn10M XX:SurvivorRation=8
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...
感谢撒迦的详细解答:)问题弄懂了一部分,自己还得再多找点资料研究下
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...
PrintGCDateStamps打印的是日期,PrintGCTimeStamps打印的是相对时间
这次分享难得完全没超时。计时器上显示的是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应该不是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在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.但是好像看不到这个过程。
谢啦。。
对了,问个小问题,莫枢同学。。
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应该不是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应该不是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...]呢?
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页)?
使用了什么命令,使gc的log中打印了绝对时间,而不是相对jvm的启动时间(如ppt的39页)?
PrintGCDateStamps打印的是日期,PrintGCTimeStamps打印的是相对时间
4 楼
buaasss
2011-10-31
多谢分享,
使用了什么命令,使gc的log中打印了绝对时间,而不是相对jvm的启动时间(如ppt的39页)?
使用了什么命令,使gc的log中打印了绝对时间,而不是相对jvm的启动时间(如ppt的39页)?
3 楼
sgano1
2011-10-27
谢谢分享
内容很不错,ppt做的也挺好
内容很不错,ppt做的也挺好
2 楼
134564
2011-10-27
E文不好..
1 楼
richard_2010
2011-10-25
已下,谢谢撒迦。
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16276以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10453先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
基于LLVM实现VM的JIT的一些痛点
2014-01-07 17:25 0同事Philip Reames Sanjoy Das http ... -
tailcall notes
2013-12-27 07:42 0http://blogs.msdn.com/b/clrcode ... -
《自制编程语言》的一些笔记
2013-11-24 00:20 0http://kmaebashi.com/programmer ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22395(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21493(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21874之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ...
相关推荐
在2011年的Qcon杭州技术大会上,淘宝网的资深技术专家莫枢(RednaxelaFX)进行了一场关于JVM在淘宝应用中的实践与优化的演讲。这场演讲深入浅出地揭示了淘宝如何利用Java虚拟机(JVM)来应对大规模电商系统所面临的...
终稿-陈旭东-微服务插件容器国际化V0.4.pdf 终稿-江杰.pdf 终稿-李淼-高性能消息数据存储引擎的设计解析.pdf 终稿-尤勇-美团点评监控体系建设.pdf 最终版-宋顺-配置中心,让微服务更『智能』+.pdf README.md
在2009年的QCon北京大会上,几位重量级嘉宾分享了他们的见解和经验,涵盖了RI(Rich Internet Applications)技术、微软的云计算平台Windows Azure以及企业系统的设计和互联网公司的技术架构发展。 首先,我们来...
【标题】"2009年QCon部分演讲稿"涉及的是当年QCon大会的一些重要演讲内容,QCon(全球企业开发大会)是面向软件开发者的一场顶级技术盛会,每年都会邀请众多业界专家分享最新技术和趋势。这次我们关注的是张剑宇关于...
QCon是为团队领导者、架构师、项目经理和高级软件开发人员量身打造的企业软件开发大会,其所覆盖的主题内容与InfoQ网站相同,关注架构与设计、真实案例分析等等。从2007年3月到现在,QCon已经在英国伦敦、美国旧金山...
本资料集合是Qcon历年来关于大数据架构的精彩分享,涵盖了LinkedIn、腾讯、大众点评、饿了么、京东等多个互联网巨头的经验与实践。 1. **LinkedIn大数据**:LinkedIn是全球最大的职业社交网站,其大数据处理涉及...
2015年QCon会议上的PPT全集
2015年QCon会议上的PPT全集
陈喆_Paypal的持续交付体系.pdf 乔梁_Leading DevOps in the right way.pdf 张甲磊-DevCloud+on+DevCloud每日10次发布效率提升实践(QCon上海2018).pdf README.md
通过这些文件,我们可以深入学习到2009年QCon北京会议上关于项目管理和敏捷开发的前沿理念和实践经验,从而提升自己的专业技能和对行业的理解。无论是项目经理还是开发者,都可以从中受益,将这些知识应用到日常工作...
2015年QCon会议上的PPT全集
2015 年 6 月 3 日,我在 QCon London 上发表了演讲,这是演讲中的演示代码和示例。 大容量多维时间数据序列的React式应用设计 “新兴的 Reactive Streams 规范非常适合设计处理有序的大容量流应用程序。我们将研究...
这次分享,我会用我的从工程师到专家工程师的亲身经历作为案例,从沟通力,学习力,思考力,强迫力,告诉大家,用怎样的钥匙才能打开这扇门。希望听众能收获并践行,让自己的职业生涯更进一步。
《QCon北京2018 PPT合集》是一份汇集了2018年在北京举行的QCon全球软件开发大会精彩演讲的资源集合。QCon(全称:QCon Software Development Conference)是由InfoQ主办的世界级技术盛会,每年在全球多个城市举办,...
QCon2016技术峰会 QCon2016技术峰会 QCon2016技术峰会
资源名称:Qcon杭州大会专家演讲录音 PPT资源目录:【】 全局架构重构-qcon杭州2011-鲁肃_v20111023【】cb47334ec2cef8897dc3e249fc3648f6【】DevOps,从云端到地面(熊节)【】Facebook大数据实时分析案例分享(Uri)...
QCon北京2018-《用正确分享来磨练专家实力—.pdf QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双 .pdf QCon北京2018-互联网文本内容安全:一种对抗式AI设计实践-王国印.pdf QCon北京2018-优酷...
QCon 2021 上海站PPT