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

57 篇文章 0 订阅
26 篇文章 0 订阅
新浪微活动页面:[url]http://event.weibo.com/753079[/url]

活动内容:
[quote]活动主题:

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

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

我的演讲的演示稿,《Intrinsic Methods in HotSpot VM》:[url=http://www.slideshare.net/RednaxelaFX/green-teajug-hotspotintrinsics02232013]SlideShare[/url], [url=http://vdisk.weibo.com/s/rGlBP]新浪微盘[/url]
Intrinsic method在别的环境里也叫做built-in function;另外,针对intrinsic method的内联在某些地方也叫做semantic inlining。可以参考
[url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.7264]Efficient Support for Complex Numbers in Java[/url], Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1999
[url=http://domino.watson.ibm.com/library/cyberdig.nsf/a3807c5b4823c53f85256561006324be/601592d895e45db88525669d00670e8f?OpenDocument]Improving Java Performance Through Semantic Inlining[/url], Peng Wu, Sam Midkiff, José Moreira, Manish Gupta, 1998
(IBM就喜欢把什么东西都起个新名字安上… :oops: )
这两篇论文里提到的semantic inlining强调“原本的intrinsic”只对操作进行特化,而semantic inlining则既对操作也对数据(类型)进行特化。实际上为了这差异发明个新名字也就是为了写论文吧…
HotSpot VM里,C2实现的StringBuilder|Buffer.append()的intrinsic在内部也是不构造Java层面的char[]来累加字符串内容,而是在native memory里找块空间来做这事情,跟semantic inlining所说的效果也类似吧。

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

[url=http://weibo.com/wengaotie]@温高铁[/url]:《各种API的性能、编码优化技巧》 [url=http://vdisk.weibo.com/s/rPtPB/1361865333]新浪微盘[/url]

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

[b]关于HotSpot VM Serviceability Agent的演示[/b]

[img]http://ww3.sinaimg.cn/large/6926734cjw1e23h48jbkhj.jpg[/img]

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

更新:加上新帖:2013-04-16: [url=http://rednaxelafx.iteye.com/blog/1847971]借HSDB来探索HotSpot VM的运行时数据[/url]

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

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

(在某些系统上可能需要在前面加上sudo以获得足够权限去连接到目标进程上;另外有可能需要[url=http://askubuntu.com/questions/41629/after-upgrade-gdb-wont-attach-to-process]进一步设置ptrace_scope的值[/url])

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

HSDB的截屏图:
[img]http://ww2.sinaimg.cn/large/81068f54gw1du5v6njuwtj.jpg[/img]
[img]http://ww4.sinaimg.cn/large/81068f54gw1e1z4f16mhaj.jpg[/img]

VisualVM里的[url=http://visualvm.java.net/saplugin.html]SAPlugin[/url]实际上就是HSDB里的部分功能的移植版。

[img]http://dl.iteye.com/upload/attachment/0028/8278/8cfb7237-7867-338b-a17e-b26ec5829f57.png[/img]
[img]http://dl.iteye.com/upload/attachment/0028/8280/9d1ca318-fee0-3962-8dac-f2474c7caee6.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值