我有从UI调用的此计算功能。问题是,当我使用Stopwatch
测量其经过时间时,我发现在第一次调用函数后经过的时间大大减少了。我怀疑在下次调用中会绕过一部分功能,这是不期望的。这是一段相当复杂的代码,其中包含许多子例程,其中将创建数千个对象并执行大量计算。
想到的是使用性能分析器比较第一个和第二个呼叫。但是,当我尝试在运行应用程序后启动探查器时,它将运行该应用程序的新实例。
那么,我该怎么做才能比较一个函数的不同调用?
我有从UI调用的此计算功能。问题是,当我使用Stopwatch
测量其经过时间时,我发现在第一次调用函数后经过的时间大大减少了。我怀疑在下次调用中会绕过一部分功能,这是不期望的。这是一段相当复杂的代码,其中包含许多子例程,其中将创建数千个对象并执行大量计算。
想到的是使用性能分析器比较第一个和第二个呼叫。但是,当我尝试在运行应用程序后启动探查器时,它将运行该应用程序的新实例。
那么,我该怎么做才能比较一个函数的不同调用?
似乎attach Visual Studio performance tools to running processes:
附加到正在运行的进程
- 在“调试”菜单上,依次指向“探查器”,“性能资源管理器”,然后单击“附加”。
- 出现“将Profiler附加到进程”对话框。
- 单击要附加到的进程的名称。
- 点击附加。
不确定您的特定情况,但是似乎可以在一个性能分析会话中记录两个单独的调用,然后连续选择两个峰并研究每个峰中方法时间分布的差异。