如果我想在我的代码中添加一些工具来获取特定方法执行的时间长度等指标,那么任何人都建议使用Windows内置版本或任何第三方库吗?
答案 0 :(得分:1)
如果您希望在运行时使用此功能,则应该可以离线使用分析器。我会尽可能避免使用任何仪器,因为它需要时间,因此会导致更多的性能问题。
Google for RedGate ANTS Profiler或JetBrains dotTrace。如果您有VS2010 Premium,它有一个内置的。这将为您提供方法级别的时间分析。
答案 1 :(得分:1)
我已经看到这个用PostSharp AOP框架完成,连接到Windows性能计数器(System.Diagnostics.PerformanceCounter
)。他们的示例代码之一介绍了如何执行此操作:
http://www.sharpcrafters.com/solutions/performance
如果您希望将这些测量部署到生产中并以实时方式测量性能(以便对正在运行的系统进行诊断),这可能是一个不错的选择。
如果您只想找到代码中的瓶颈,而不需要进行实时诊断,我建议您只使用一个分析器,例如VS内置的分析器或Ants Profiler(正如Chris已经建议的那样) )。然后根据代码运行生产数据的编辑副本,以使您的性能测量与生产相匹配。
答案 2 :(得分:0)
通常情况下,探查器会负责测量性能。
如果你需要自己测量时间,那么使用某种跟踪方式的StopWatch就足够了。