欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记GreenTeaJUG第二次线下活动(杭州)

程序员文章站 2022-03-03 17:46:42
...
新浪微活动页面:http://event.weibo.com/753079

活动内容:
引用
活动主题:

会场一 万松书院(偏向应用层):
  @琴上的日月:《淘宝WEBOS.面向积木编程.分形架构》(45分钟)
  @淘宝君山:《Velocity的优化》(45分钟)
  @淘宝叔同:《淘宝前台应用性能优化实践》(45分钟)
  @温高铁:《各种API的性能、编码优化技巧》(45分钟)
  剩余时间交流答疑

会场二 三味书屋(偏向底层):
  @MinZhou:《Java程序员也要了解CPU》(1小时)
  @RednaxelaFX:《Intrinsic Methods in HotSpot VM》(1小时)
  @王王争:《让Java的世界能够利用PMU的历史》(1小时)
  剩余时间交流答疑
  (@RednaxelaFX 会做一个关于HotSpot VM Serviceability Agent的演示)


我的演讲的演示稿,《Intrinsic Methods in HotSpot VM》:SlideShare, 新浪微盘
Intrinsic method在别的环境里也叫做built-in function;另外,针对intrinsic method的内联在某些地方也叫做semantic inlining。可以参考
Efficient Support for Complex Numbers in Java, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1999
Improving Java Performance Through Semantic Inlining, Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1998
(IBM就喜欢把什么东西都起个新名字安上…记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 
这两篇论文里提到的semantic inlining强调“原本的intrinsic”只对操作进行特化,而semantic inlining则既对操作也对数据(类型)进行特化。实际上为了这差异发明个新名字也就是为了写论文吧…
HotSpot VM里,C2实现的StringBuilder|Buffer.append()的intrinsic在内部也是不构造Java层面的char[]来累加字符串内容,而是在native memory里找块空间来做这事情,跟semantic inlining所说的效果也类似吧。

其他演讲者的演示稿等@坤谷整理好放在这里了:http://yunpan.alibaba.com/share/link/L4OU3zA6

@温高铁:《各种API的性能、编码优化技巧》 新浪微盘

==================================================================

关于HotSpot VM Serviceability Agent的演示

记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 

我以前在这ItEye上也写过一些关于HotSpot Serviceability Agent的笔记。
最近大概是这篇:关于sa-jdi.jar与tools.jar里的工具的讨论
以前例如:
2011-06-20: 回复:请问,jvm实现读取class文件常量池信息是怎样呢?
2010-08-05: 借助HotSpot SA来一窥PermGen上的对象
2010-08-04: 借助HotSpot SA来反汇编
2010-08-03: 如何dump出一个Java进程里的类对应的Class文件?

更新:加上新帖:2013-04-16: 借HSDB来探索HotSpot VM的运行时数据

这次做的演示以CLHSDB和HSDB为主。以后有空再写个Serviceability Agent的入门演示稿吧。
如果有兴趣自己基于SA API来写小工具,这里有个我写的基于SA的工具的列表,可以参考:http://rednaxelafx.iteye.com/blog/1814429

CLHSDB是command line HotSpot debugger的缩写,顾名思义是个命令行界面的、专门用于调试HotSpot VM的调试器。
它的用法可以搜一下"rednaxelafx clhsdb"关键字,我在Github gist上发过很多例子。
最简单的启动方式如下:
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.CLHSDB

(在某些系统上可能需要在前面加上sudo以获得足够权限去连接到目标进程上;另外有可能需要进一步设置ptrace_scope的值

HSDB则是图形界面版的HotSpot调试器。它的启动方式与CLHSDB类似,
java -cp $JAVA_HOME/lib/sa-jdi.jar sun.jvm.hotspot.HSDB

HSDB的截屏图:
记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 
记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 

VisualVM里的SAPlugin实际上就是HSDB里的部分功能的移植版。

记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 
记GreenTeaJUG第二次线下活动(杭州)
            
    
    博客分类: JavaVirtual MachineHotSpot VM JVMHotSpot VM 
相关标签: JVM HotSpot VM