性能测试






3.32/5 (9投票s)
2005年9月29日
2分钟阅读

28388

194
通过命令行工具将性能钩子附加到程序集。
引言
上周,我被要求改进我们的 ASP.NET 应用程序的性能。由于缺乏性能测试经验,并且阅读了许多文章后,我决定从一些流行的可用工具开始。我很快发现,由于某种原因,这些工具提供的指标可能会有偏差,在某些情况下甚至明显不正确。
解决方案
我真正想做的是创建一个可释放类,并将每个方法的内容包装在一个 using
语句中。
例如
private void Form1_Load(object sender, System.EventArgs e)
{
MessageBox.Show("Test");
}
变成
private void Form1_Load(object sender, System.EventArgs e)
{
using (PerformanceMonitor.PerformanceMonitor pm =
new PerformanceMonitor.PerformanceMonitor())
{
MessageBox.Show("Test");
}
}
PerformanceMonitor
类的构造函数和析构函数可以输出到文本文件/事件日志/等。PerformanceMonitor
可以根据需要进行自定义。
我认为一定有更简单的方法来添加性能日志记录机制,并且比我之前尝试过的工具运行得更好。
结果是一个实用程序,它使用 ILDASM 拆解程序集,修改 MSIL,然后使用 ILASM 重新组装 MSIL。最终结果是每个方法都用 using
语句包装。
如何使用
在运行该实用程序之前,必须编译 PerformanceMonitor
类,并将其复制到与要修改的程序集相同的目录中。
该实用程序和示例 PerformanceMonitor
类已附上。该实用程序的命令行应用程序用法为:AttachPerformanceHooks.exe TestAssembly.dll
。
此实用程序可以附加到任何未混淆、未签名的程序集。到目前为止,使用附加的 PerformanceMonitor
获得的结果没有偏差,也没有给出不正确的结果。
PerformanceMonitor
类将输出到通过应用程序设置提供的目录中的文本文件:“PerformanceMonitor.LogDir
”。
注意:对于较大的程序集(例如 90 MB MSIL),该实用程序可能需要一段时间才能运行。
结论
到目前为止,我使用它已经一周了,它使我的工作变得更加容易。我希望您也觉得此实用程序有用。