java 程序的性能分析

有些时候会分析下程序的性能问题,仅根据个人的一些实践来说下。

java web的程序的性能  一般都是针对访问多点的地方做个时间标记,模拟压测的打印log也是比较容易发现程序的一些问题的。

下面主要介绍java应用程序的性能分析一些方法。

1:使用jdk自带的jvisualvm   在window下的cmd直接启动就可以了。xp下因为盘文件格式的问题,可能导致无法访问,需要修改一些配置的路径。

jvisualvm   打开后 首先选定你的程序  展示对应的CPU  内存信息  大体能感受下你的程序有没有问题,CPU占用多少 GC是否频繁,堆内存分配。

有些时候会看到程序的堆内存忽上忽下,幅度还比较大,这个时候需要关注下。可以再jvisualvm中选择工具下载visualvm gc的插件,安装重启jvisualvm打开就可以看到插件的效果。可以看到Eden区内存增长还是比较迅速的。可以打开profile  选择内存  注意年龄字段的值  为 1说明是刚new出来的对象  如果长时间这个对象的的年龄为1  则基本上可以确定这个对象经常再被new出来。需要找出哪些代码new出了这个对象。目前也没想到好的办法,只能靠注释主逻辑的代码来查找范围。有些时候会发现数量上去了,稍微点写法都是致命的。

   2: jprofile分析程序的一些CPU消耗在哪还是很不错的,通过消耗的时间树很容易找出哪些方法消耗了CPU时间。

   3:对于Linux  一般都是dump内存数据来分析 导入到Eclipse中分析下内存是否有泄漏,以及内存存放了那些数据都一目了然。

这个工具也可以像Jprofile一样能通过根节点一步一步找出调用的方法。主要是查找内存的一些问题。

   4:程序运行的时候加上GC的一些参数  打印出GC的时间,消耗的时间,通过修改部分代码能增长GC的时间间隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值