如何在Visual Studio性能分析器中查看毫秒而不是采样百分比

21

我正在尝试使用Visual Studio性能分析器来分析我的程序,但我对这个工具还不熟悉。

如果我在分析器中启动我的程序,我会得到一份报告,其中显示了每个函数占总分析时间的百分比。但是,总时间可能在5秒至500秒之间变化,那么我如何知道我的优化是否产生了效果呢?

如果时间单位是毫秒,我就不会有这个问题,但我找不到任何类似于“显示毫秒”的函数。是否存在这样的函数?

enter image description here

1个回答

33
Visual Studio Profiler中有两种不同的CPU分析方法:采样和插装。
采样(默认): 采样分析方法在固定间隔中断计算机处理器并收集函数调用栈。对于正在执行的函数,增加独占样本计数,对于调用栈上所有调用函数,增加包容样本计数。采样报告为被分析模块、函数、源代码行和指令提供这些计数的总计。该方法轻量级(不会更改二进制文件),对应用程序方法的执行几乎没有影响,它只收集了有关应用程序在分析会话期间执行的工作的统计数据。适合初步探索。高百分比可能表示慢的函数或被频繁调用的函数。
插装: 插装分析方法在分析应用程序时,收集函数调用的详细时间。如何实现呢?它注入代码来捕获被插装文件中每个函数和由这些函数进行的每次函数调用的时间信息。插装还标识了一个函数何时调用操作系统进行写入文件等操作。在报告中,你将看到应用程序时间(执行代码所花费的总时间,但不包括在调用操作系统、ado.net、服务调用等方面花费的时间)和经过时间(执行代码所花费的总时间)。此分析模式的运行时开销较高。这不可避免地会稍微改变应用程序的性能特征,但这种影响是相当小的。只有这个选项可以让你看到毫秒级别的时间信息。所以在性能资源管理器向导中更改分析方法。另请注意,有时候这个选项可能不可用,例如在对单元测试进行分析时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接