Yourkit 学习笔记-Start CPU profiling. Sampling, tracing, call counting.

来源:互联网 发布:麻将至尊王软件 编辑:程序博客网 时间:2024/05/22 15:53

Sampling

该模式会定期的访问栈,评估出运行较慢的代码。该模式没有方法的调用次数记录,仅有cpu时间。该模式是在进行提供瓶颈分析中最好的模式,对服务器额外开销最小。

在该模式中可以进行相关配置。(Simpling和tracing都可以进行相关配置)

在上图中,可以对要监控的类或者方法进行系统时间监控。
在上面的对话框中,可以输入多行代码,格式如下:

    walltime=<fully qualified class name> : <method name> ( <comma-separated parameter types> )     or     walltime=<fully qualified class name>

这样配置完成后,在配置中的方法将会显示系统时间(walltime),其他方法还是显示CPU时间。
在上述配置中支持通配符*,

    walltime=com.foo.bar: print*(*)

上面的代码意思是,记录com.foo.bar中的以print开头的所有方法的系统时间(walltime)
PS:在simpling模式中,默认使用系统时间记录的只有I/O methods

采样时间的设置也是通过上面的对话框设置的

sampling_period_ms=<time in milliseconds>

sampling_period_ms=20 20毫秒一采样

上述配置存储在了
/.yjp/sampling.txt

Tracing

应用Tracing模式,被监控应用的每一个方法都会被转化成字节码记录其消耗CPU的情况。方法调用次数和CPU时间都被记录下来。
但是tracing模式对服务器影响较大。
被检测服务的方法越多,对服务器性能影响越大

该模式的设置除了包含了Sampling模式的设置外,还有一些其他的配制方法,具体如下:


adaptive tracing 模式是开启的
adaptive = ture

默认存储在/.yjp/tracing.txt

Call counting

最轻量级的CPU性能分析模式,对服务器的性能影响几乎为零

该模式技术不一定完全精确。为了能够保证对服务器机会为零的性能影响,

该模式没有应用任何locks和test-and-set 的atomic操作。因此如果同一个方法是多线程的,同时在不同CPU的不同核上调用的时候,就出发生计数错误。

该模式不支持调用计数的auto activity mode,不收集hight-level-statistics

开始监控后,实时看到的结果只是CPU的基本信息,要想查看详细信息,保存快照后,查看快照

0 0
原创粉丝点击