首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

应用perf 分析优化java应用

2012-09-28 
使用perf 分析优化java应用。要求kernel版本在2.6.32及以上,jdk为taobao-jdk 6u32及以上2.??????运行实例在

使用perf 分析优化java应用。

要求kernel版本在2.6.32及以上,jdk为taobao-jdk 6u32及以上

2.??????运行实例

在运行java时,需要添加两个选项-agentpath:/xxx/libjvmti_perf.so.0.0 -XX:+UseOprofile, agentpath是修改后perf工具中agent库。

然后sudo perf top即可看到实时的分析结果数据。

以gcbench为例,运行结果如下。

-------------------------------------------

?? PerfTop:???1083 irqs/sec? kernel: 8.8%? exact:?0.0% [1000Hz cycles],? (all, 16CPUs)

-------------------------------------------

?

???????????? samples? pcnt function????????????????????? DSO

???????????? _______ __________________________________ ______________________

?

???????????? 4102.00 38.1% LGCBench;Populate(ILNode;)V?? hs-vm-3612-1 (deleted)

???????????? 3562.00 33.1% LGCBench;MakeTree(I)LNode;??? hs-vm-3612-1 (deleted)

????????????? 880.00? 8.2% PSMarkSweepDecorator::precomp libjvm.so

????????????? 716.00? 6.7% instanceKlass::oop_adjust_poi libjvm.so

????????????? 487.00? 4.5% instanceKlass::oop_follow_con libjvm.so

????????????? 208.00? 1.9% intel_idle??????????????????? [kernel.kallsyms]

??????????? ??182.00?1.7% PSMarkSweepDecorator::adjust_ libjvm.so

????????????? 161.00? 1.5% MarkSweep::follow_stack()???? libjvm.so

????????????? 119.00? 1.1% PSMarkSweepDecorator::compact libjvm.so

?????????????? 55.00? 0.5% __GI_memmove????????????????? /lib64/libc-2.5.so

?????????????? 43.00? 0.4% CardTableExtension::scavenge_ libjvm.so

?????????????? 42.00? 0.4% SpinPause???????????????????? libjvm.so

?????????????? 31.00? 0.3% _wordcopy_fwd_aligned???????? /lib64/libc-2.5.so

?????????????? 27.00? 0.3% clear_page_c????????????????? [kernel.kallsyms]

??????????????23.00? 0.2%StealTask::do_it(GCTaskManage libjvm.so

通过结果我们可以看到,里面既有java方法,又有c的方法。排在前两位的就是java方法,这个java工程师比较喜欢了,可以从这里入手尝试去优化java应用。

?

3.??????讨论

?????? 目前来看,tperf可以帮助java工程师解决一些问题,但是tperf本身也存在一些问题,目前对top的支持较好,对record的支持还是存在问题的,我就用record搞挂过几次机器。期待后续我们团队大牛对tperf的改进吧。

热点排行