使用仪器模型进行性能调整

时间:2009-03-10 13:48:55

标签: .net profile instrumentation

如果我使用此处描述的检测模型来分析.Net应用程序性能,则意味着配置文件工具将更改要配置文件的可执行文件的可执行代码以插入性能度量代码?所以我原来的可执行代码被修改了吗?

http://msdn.microsoft.com/en-us/library/ms242753(VS.80).aspx

的问候, 乔治

3 个答案:

答案 0 :(得分:1)

是;检测代码与未经检测的代码不同。这意味着你必须稍微小心结果 - 但是大多数剖析器都会合理地将你的注意力集中在重要位上。我从未对采样选项感到好运 - 但​​是仪器通常很有用。就个人而言,我喜欢jetBrains提供。

答案 1 :(得分:0)

采样模式 是指您在代码中了解热点区域时,它不会修改您的代码,它只会采样所有正在运行的线程的当前调用堆栈。如果您的线程内容正在休眠或等待资源(互斥,事件等),那么它将被视为一个热门区域。您想使用此模式来测量负载 Instrumnation mode (追踪)将衡量每种方法花费的时间(周期)。
它需要检测您的代码(使用调试符号),但它最终将排除它放在系统上的开销。您希望使用此模式来测量单个进程。

答案 2 :(得分:0)

是的,在检测时,探查器将使用其他指令修改您的代码,以收集和跟踪必要的性能数据。您永远不会希望分发程序集的检测版本,并​​且您不希望使用检测程序集进行调试(因为关键部分/竞争条件/等在给定额外检测时肯定会有不同的行为)。

话虽如此,对于分析目标要解决的问题,仪器可能非常有价值。通过收集实际数据并隔离昂贵的操作,可以适当地集中优化工作,并且可以准确地测量结果 - 避免浪费时间,增加复杂性,降低可维护性以及与过早优化相关的所有其他问题。