corner imagecorner image FeaturesPluginsDocs & SupportCommunityPartners

Profiler - 运行定制的性能分析

内存性能分析设置

在运行定制的性能分析模式下,您对所有可用的内部性能分析设置拥有完整的控制权。选择内存性能分析时,可以选择只记录对象创建或记录整个对象生命周期(即创建和垃圾回收)。

选择“内存性能分析”选项可打开以下设置对话框:

定制内存性能分析设置

可以使用以下选项来运行定制的性能分析:

  • 栈抽样深度:完整或有限。每次 Profiler 记录对象创建时,它还会在此时记录调用栈。这是一个开销相对较大的操作,因此可以调整记录的栈的最大深度,即从顶部开始记录的框架数(缺省情况下,数量是无限的)。通过将最大深度限制为较小的数字(如 3 到 5),可以大大减少性能分析开销,使分配密集型的应用程序的运行速度最多可提高几倍。

  • 栈抽样间隔...(栈抽样间隔)。如统计内存数据收集部分所述,Profiler 会记录对象分配,进行栈抽样,并随后在“记录整个对象生命周期”模式下跟踪某个对象而不是所有对象(只跟踪一定比例的对象)。上面的数字就是为该比例指定的数字。然而需要注意的是,部分记录只是栈抽样以及栈跟踪对象的记录,对象分配的总数是单独记录的,并且不会丢失任何分配记录。如果将栈抽样间隔设置为 10,这意味着对于每个类来说,每隔 10 个对象分配时只会完整地记录第 10 个对象分配。如果要记录每个对象的所有信息,请将此数字设置为 1,但要记住,这会显著影响分配密集型应用程序的性能分析开销。对于在实际工作负荷条件下的服务器端应用程序,通常将此数字设置为 20 或更多时比较合适,这有助于最大限度地减少开销,并且可以获得仍能满足实际需要的大量信息。

  • 获取内存结果时运行垃圾回收。如果选中该复选框,每次单击“性能分析”->“运行垃圾回收”(运行垃圾回收) 时,将在目标 JVM 中调用完整的垃圾回收。运行垃圾回收可以帮助您了解实际的对象活动性,因为不活动的对象将作为垃圾被回收,且不会将其报告为活动对象。但是,执行完整的垃圾回收的开销可能会很大,特别是较大的应用程序,垃圾回收可能需要几秒到几十秒的时间,因此应该慎重使用此选项。

另请参见

 

 
 
loading
Please Confirm