corner imagecorner image FeaturesPluginsPlatformDocs & SupportCommunityPartners

Profiler - 分析

使用不同种类的计时器

缺省情况下,结果只显示在分析的方法上花费的时间,或者称为绝对时间。但请注意,Profiler 始终尝试为您同时提供绝对时间和线程 CPU 时间以绘制整个分析的调用子图。绝对时间是给定线程进入根方法的时间与其退出该方法的时间二者之间的间隔,再减去在插入的分析代码中花费的估计时间。将始终显示整个子图的绝对时间。然而,仅当方法级别的线程 CPU 时间测量处于活动状态(请参见下面的内容),或者当请求数据时给定执行线程不在调用子图内时,才会显示线程 CPU 时间。否则,Profiler 认为线程 CPU 时间不可用。这仅属技术上的限制,将来可能会消除此限制。

如果分析多线程应用程序,除了测量绝对时间外(或者不测量绝对时间),通常还应该测量所分析方法的线程 CPU 时间。可以选择只测量绝对时间或线程 CPU 时间,或者同时测量这两个时间。请注意,如果打开两个计时器,性能分析开销将会增加,因为每次进入或退出应用程序方法时,在目标应用程序代码中插入的分析需要调用两个计时器,而不是调用一个计时器。另请注意,在 Windows 和 Linux 上,与绝对计时器(分辨率不到 1 微秒)相比,线程 CPU 计时器的分辨率很低,大约为 10 毫秒。因此,在这些平台上使用线程 CPU 计时器来测量各个方法没有什么意义,至少当这些方法的运行时间往往小于 50 到 100 毫秒时。在 Solaris 上,情况就好得多,此操作系统上的线程 CPU 计时器的分辨率大约为 1 毫秒,并且该计时器调用占用的 CPU 周期也比 Windows 少得多(约为十分之一)。

另请参见

 

Project Features

About this Project

Profiler was started in November 2009, is owned by Tomas Hurka, and has 41 members.
 
 
Close
loading
Please Confirm
Close