YourKit Java Profiler 9.5.1 试用总结一

  近日接到学习任务研究下YourKit来解决项目中对内存的监控和分析。

  准备环境:
 
引用

1.下载网站http://www.yourkit.com/download/index.jsp
          下载安装后,请注册,然后获取注册码
2.该版本需要按照java 6以上版本。
3.Eclipse3.5通过下载http://www.yourkit.com/download/yourkit95_for_eclipse/插件进行集成
 

以上三步前两个步骤是必须的。如果想更好的监控和分析源码那建议和Java开发的IDE进行集成。(Java开发的IDE一定是Eclipse。其他的IDE你可以在Yourkit的官方网站查到。同时也不限制是Java语言。详细信息请参考Yourkit的官方网站)

  废话少说进行主题:针对Java语言使用Yourkit。这篇主要对[color=red]一些参数进行认识


参数:
  • CPU
  • Threads
  • Deadlocks
  • Memory (JVM Memory Structure)
  • Garbage Collection
  • Monitor Usage
  • Exceptions
  • Probes
  • Summary

参数详解
  • CPU块:显示连接上的应用程序的CPU使用情况的统计
  •            [list]
               
  • CPU Time图像
  •              
  • Threads图像
  •              
  • Call Tree 信息
  •              
  • Method List信息
  •              
  • Stack Traces信息
  •              
  • CPU Usage Estimation信息
  •            
  • Threads 块:显示所有存活的线程便于追踪线程信息
  •            

                  
    • Live Threads:当前运行的线程数量
    •               
    • Daemon Threads: 当前运行的守护线程数量
    •               
    • Runnable Threads: 当前运行JVM线程的状态
    •            
  • Deadlocks 块:显示出现死锁的信息
  • Memory块: 显示JVM内存信息
  •          

                 
    • Heap Memory(存储Java对象;面向对象为:开发者)
    •            
    • Eden Space: 显示存储的初始化对象
    •              
    • Survivor Space : 显示通过GC(GC是操作Eden Space)后的对象
    •              
    • Tenured Gen: 显示存在Survivor Space中的对象
    •              
    • Non-Heap Memory(方法区、 JVM 内部处理或优化所需的内存 ( 如 JIT 编译后的代码缓存 ) 、每个类结构 ( 如运行时常数池、字段和方法数据 ) 以及方法和构造方法的代码都在非堆内存中;面向对象为:JVM本身)
    •            
    • Perm Gen(Permanent  Generation: 内存的永久保存区域;用于存放Class和Meta的信息,Class在被 Load的时候被放入Perm Gen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对Perm Gen space进行清理):
    •             
    • Code Cache:存储和编译本地代码
    •               
    • Classes(显示当loaded的classes数量和unload的Classes数量)
    •          
  • Garbage Collection(GC)
  •          

                 
    • Time Spent in GC
    •            
    • Minor collections(‘Copy’)
    •            
    • Major collections(‘MarkSweepConpact’)
    •          
  • Monitor Usage(分析同步的功能 )

    •            
    • - waiting thread (thread which called wait())
    •            
    • - blocked thread (thread failed to immediately enter the synchronized method/block)
    •            
    • - blocker thread (thread that held the monitor preventing the blocked thread from entering the synchronized method/block)
    •          
  • Exception telemetry(显示类或者线程异常信息;用于发现性能和逻辑错误)
  • Probes(探测器)
  •          

                 
    • 显示详细Enter或者exit的方法
    •              
    • 显示加载的类和没有加载的类事件
    •              
    • 显示其他的事件
    •            
  • Inspections(显示检查所以项并显示信息:针对Snapshots,Inspections能够自动分析程序,并详细显示有可能出现错误的信息)
    • Memory Inspections
    • 可能出现内存浪费(Possible memory Waste)
    • Duplicate Strings
    • Duplicate Arrays
    • Null Fields
    • Sparse Arrays
    • Zero Length Arrays
    • 可能出现的泄露(Possible leaks)
    • Object Retained by Inner Class Back References
    • Lost SWT Controls
    • 其他可能出现问题的信息
    • HashMap Hash Code Distribution
    • Highly Referenced Objects
    • Self Referencing Objects
    • Non-Serializable Objects Referenced from Serializable Object
    • Objects With Biggest Distance To Nearest GC Root
    • Inspections based on build-in Probes

    利用以上Youtkit的参数及其参数信息。
       个人将对应用程序和服务器进行分析,通过以上参数信息进行分析,总结分析思路。关于分析思路将要经过一段时间的实践总结。如果你有什么好的分析思路可以共同进行探讨下!![/color]

    猜你喜欢

    转载自jiangduxi.iteye.com/blog/834187