读书人

YourKit Java Profiler 9.5.1 分析考虑

发布时间: 2012-07-27 11:03:00 作者: rapoo

YourKit Java Profiler 9.5.1 分析思考一

以下是我对使用YoutKit 对程序分析的一些想法!
程序分析思路
分析CPU得到应用程序中某个类中的方法被调用的次数及其CPU处理花费时间。
操作方式
?Start or Stop CPU评估(profiling)(1)
?清除CPU之前的评估结果并且继续评估(2)
?保存此时的评估快照(Snapshots)(3)
评估方式(profiling):
?Sampling(不包含方法调用,只含有CPU time)
?Tracing(包含方法调用和CPU time)
分析参数:(主要从调用方法次数和调用时间来分析)
?Calltree(all threads together)
?Calltree(by thread)
?Hotspots
?Methods list

总结:
1.通过CPU Profile我们了解类、方法使用CPU处理的时间以及被调用的次数。
2.通过CallTree了解调用的关系。通过Hotspots显示哪些包下的方法使用CPU处理的时间长及其被调用的次数。
3.重点分析CPU处理时间长同时调用的次数比较少的类、方法。或主观认为CPU处理时间应该很短而显示CPU处理时间长;主观认为调用的次数少而显示调用次数很多的类或者方法,进行重点分析。(不一定有问题。但是必须要去看看。)
分析Memory
操作方式
?Capture memory snapshot (1)
?Start/stop object allocation recording (2)
?Advance object generation number(3)
?Edit triggers(4)
内存保留方式:
?Shallow Size
?Retained Size
分析参数:
?Class list
o显示类对象分配的内存
?Biggest Objects(domainators)
o显示占有内存的单个对象
?Generations
o显示在某个时间段中产生的单个对象
?Reachability scopes:显示GC与对象的关系(强对象,软对象,弱对象,虚引用)
oObjects unreachable from GC roots, but not yet collected
oObjects reachable from GC roots via strong references
oObjects reachable from GC roots via weak and/or soft references only
oObjects pending finalization(Objects in the finalizer queue)
?Class loaders
o按类加载的顺序显示加载的类
?Inspections
通过
进行分析。分析显示的参数请参考参数详解中的Inspections
总结:
1.通过Memory Profile我们了解类对象的具体存储及其类的加载方式、顺序。
2.通过Memory 的Class List中可以查询出开发者直接编写的Class。分析编写的Class的对象及其占有的内存的大小。
3.同时要想更好的了解Class对象的信息。请选择要查询的Class单击左键可以看见 。使用Path from GC Roots 、instances by Class 、Selected Objects、Retained Object进行查看你想了解的信息。可以通过集成IDE来关联到源码。选择Open Declaration in IDE Editor
4.结合Class List 和Biggest Objects来进行分析:注意是否存在类占有很大内存和很大对象而与实际编写源码不相符。
5.分析Inspections中给出的提示。

分析GC(Garbage Collection)
操作方式
?先操作(1)再操作(2)
分析参数
?Call tree(all threads together)
?Calltree(by thread)
?Hot spots by object count
?Hot spots by object size
?Method list
总结:
1.GC操作比较频繁的类对象。是值得去注意的。因为该类可能产生了大量的临时对象。导致GC频繁操作。

读书人网 >软件开发

热点推荐