如何找到适度快速过程的缓慢步骤?

时间:2011-07-08 21:52:27

标签: .net winforms find performance

我有一个Windows窗体应用程序。当用户选择要查看详细信息的项目时,加载详细信息屏幕需要4秒钟(平均值为2.5)。这似乎太长了......但它并不长。

我遇到的问题是很难追踪,因为它比它应该更长但不会太长。换句话说,如果它需要30秒,我可以轻松地逐步找到那个时间占用的步骤。但是有4秒钟,你会遇到类似调试器放慢速度的问题,所以你不确定你是否找到了慢速步骤。

如何在适度“快速”过程中追踪缓慢的步骤?

3 个答案:

答案 0 :(得分:2)

您可以使用profiler告诉您花费的时间。

答案 1 :(得分:1)

只需将流程主要步骤的时间戳记录到日志文件或单独的窗口中即可。这样的事情会做:

string times = "";
times += string.Format("step 1: {0}\n", DateTime.Now);

// ...

times += string.Format("step 2: {0}\n", DateTime.Now);

// ...

times += string.Format("step 3: {0}\n", DateTime.Now);

// now output the string to a file or to a different window (or even examine it in the debugger)

答案 2 :(得分:1)

找到瓶颈的快速而肮脏的方法是启动慢速操作,然后立即“全部中断” - 单击“全部中断”按钮,或按Ctrl + Alt + Break。

当你这样做几次时,你会经常发现程序在同一个地方多次中断,这应该给出了一直在咀嚼什么的线索。