其神若何,月射寒江。

白盒测试之性能监控工具JProfiler使用

上一篇 / 下一篇  2010-06-30 11:07:23 / 个人分类:白盒测试研究

监控工具在实践中,我们用来监控分析哪些内容呢。
我们往往需要根据理论知识,转换为可行的方法。
1 分析内存

l        分析对象的内存分配情况

  

分析短时间对象占用内存问题:

 

 在内存视图类视图,点击”mark current values”

 然后进行相关的业务操作。

 就可以知道各个类的内存增长情况

 

分析长时间对象占用内存情况:

先照快照

一定时间后再照快照

然后对比快照

 

分析大对象占用内存情况

如果对象过大,往往是一次加载了过多的数据,很多信息是没用的。

可以考虑其他办法减少加载过多的数据。

比如,列表一次把所有的用户信息加载到内存中,那么列表对象会非常大。

可以考虑分页显示,把部分用户用户加载进来。

 

 

 

 

l        分配堆的情况

 

分析非堆区

 主要是个jvm使用的,方法区、原生方法栈、常量池等。

不会发生溢出。

 如果代码过多,或者常量过多,将会占用非常大的空间。

分析堆区

堆分为,young区和old区。Young不会发生溢出的,old是有可能

发生溢出。

一般要监控young区和old区的情况,来判断是否这两个区的配置

都合理,但是jprofiler没有提供观察各个区的功能。可以用

jconsole工具来查看。

所以,只能查看堆区的整体大小,来分析设置的堆区大小是否

足够。

old区中,存活比较长时间的对象有静态对象等。

 

GC情况

 查看频率,如果过高,说明堆区不够。

 查看耗时,如果过高,说明堆区太大。

 

 

 

2 分析cpu

 

l        分析sql执行cpu占用情况

 

从执行SQL占用CPU比例比较高上分析

 说明大部分时间都在占用执行该sql,占用了大部分的cpu资源。

 考虑是否有优化的空间。

 考虑是否有该sql是必要的,例如select sysdate from dual可以采用其它sql的方式来取得时间。

 

 

从平均执行SQL的时间上分析

如果平均执行的时间过大,说明需要进行优化。一般都是毫秒级别,如果到了秒级别,往往需要分析问题。

 

 

 

l        分析url处理时间

 

从平均处理url的时间上分析

 用户的体验的等待时间为:url处理时间+网络传输时间+客户端显示时间

 比如如果超过4秒,需要考虑该页面的性能瓶颈。

 

从调用次数上分析

 对于调用次数比较高的,说明大部分用户的操作都集中在这些

页面。

 这些页面是高并发,进行性能优化的重点区域。

 

 

3 分析线程

 

l        分析死锁线程

 如果检查出有死锁的线程。必须进行分析死锁的原因。

 

     -----------------------------------river .liu 2010-6-30

 


TAG: jprofiler River 白盒测试 river

 

评分:0

我来说两句

xiaohanjiang

xiaohanjiang

River.liu又名小寒江。曾经从事多年JAVA软件开发工作,这几年一直从事软件测试工作。多年来,一直致力于软件工程、软件开发、软件测试方面的研究。不喜欢自称高手,不愿意自封资深;科学研究讲究的是务实、实践。真理、真知才是硬道理。茫茫海洋,我只希望我的每个理念能游弋于业界之间。我的思想能在你的脑海中徜徉。

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 39637
  • 日志数: 52
  • 建立时间: 2009-12-15
  • 更新时间: 2011-03-14

RSS订阅

Open Toolbar