corner imagecorner image FeaturesPluginsDocs & SupportCommunityPartners

Profiler - 运行定制的性能分析

CPU 性能分析设置

在运行定制的性能分析模式下,您对所有可用的内部性能分析设置拥有完整的控制权。选择 CPU 性能分析时,可以选择分析整个应用程序、分析部分应用程序或分析应用程序启动时的性能情况。

选择“CPU 性能分析”选项时,将打开以下设置对话框:

定制 CPU 性能分析设置 - 整个应用程序 - 基本设置

分析整个应用程序或部分应用程序时,可通过修改以下基本设置和高级设置来优化性能分析配置:

基本选项

  • 方法跟踪:完整(精确的调用树和计时)或抽样(精确的调用树和抽样计时)。在 CPU 性能分析期间,Profiler 在每个被分析的方法开始位置插入“方法进入”调用,并在每个 return 前插入“方法退出”调用。在完整的分析模式下,每个“方法进入”和“方法退出”调用都会生成一个时间戳,并且将这些时间戳之间的差值作为在此方法中花费的时间进行计算。在抽样的分析模式下,不会在每个“方法进入”/“方法退出”调用上生成时间戳,而是在指定的每个抽样时段快要结束时出现的那些调用上生成时间戳。
    有关详细信息,请参见完整分析与抽样分析。
  • 分析在根方法执行中启动的新线程。如果选中此选项,则会让 Profiler 分析应用程序进入根分析方法后启动的任何线程的代码(请参见分析单线程和多线程应用程序)。

    在“整个应用程序”模式下进行性能分析时看不到此设置,因为此选项是缺省选定的。

  • 排除在 Thread.sleep() 和 Object.wait() 中花费的时间。如果选中此选项,则不会在分析中包含这些时间。
  • 分析过滤器。可通过指定分析过滤器来限制分析的类数。有关详细信息,请参见创建定制的过滤器集合。

高级选项

“高级”选项标签中提供了以下选项。

  • 限制分析的线程数。可以限制分析的线程数。每当未注册的线程进入分析的代码时,此计数值会减少。当它达到零时,将停止注册新线程。仅为注册的线程收集性能分析数据。每次调用“性能分析”>“重置收集的结果”() 时,计时器将重置为上面指定的值。有关详细信息,请参见分析单线程和多线程应用程序。
  • 使用线程 CPU 计时器。可以使用不同种类的操作系统计时器来生成方法进入/退出事件的时间戳。缺省情况下,使用绝对计时器来测量绝对时间或 Wall Clock 时间。线程 CPU 计时器只测量执行给定线程所花费的时间。实际上,每次 CPU 停止执行代表给定线程的代码时,操作系统都将暂停该计时器,并在每次执行切换回该线程时恢复执行。该选项只适用于 Solaris 操作系统。有关详细信息,请参见使用不同种类的计时器。
  • 分析:方案。通过选择分析方案,您可以限制分析的方法数。通常,分析的方法数与分析应用程序时其实际调用的方法数相同或非常接近时是最理想的情况。“部分应用程序”的缺省方案为 "Lazy"。通常,当您需要分析一部分应用程序代码(例如,仅分析应用服务器上运行的一个或若干个 Servlet)时,这是最合适的方案,因为它分析的方法数最少。但是,如果要分析应用程序启动时的性能情况或分析整个应用程序(如短时间运行的命令行实用程序),使用 "Total" 分析可能更适合。对于“整个应用程序”模式,"Total" 分析为缺省值并且会隐藏该控件。有关详细信息,请参见分析方案。
  • 分析/不分析各种特殊的 Java 方法。选中“分析 Method.invoke()”时,将跟踪并分析使用“Java 反射”(即 java.lang.reflect.Method.invoke() 调用)完成的所有调用。否则,将不跟踪这些调用。

    其他两个选项用于指定 Profiler 是否应该分析 get/set 对象字段的方法,以及不包含任何可执行代码的方法。通常,分析这些方法并没有什么意义,因为 HotSpot JVM 非常有效地对其进行了优化,它们的执行时间通常可忽略不计。但是,如果要进行分析,它们可能会显著地增加性能分析开销。请仅在需要了解这些方法是否被调用和调用次数时才选中这些复选框。

定制的 CPU 性能分析设置 - 高级

代码片段选项

如果选择分析代码片段,则可设置的参数只有被分析线程的最大数量和缓冲区大小。

另请参见

 

 
 
loading
Please Confirm