我正在寻找一个用于.NET支持的CPU分析器。
目前,我遇到了大多数.NET分析器的麻烦,特别是,
到目前为止,我还没有尝试过英特尔的VTune。有什么开明的建议吗?
发布于 2009-04-18 15:37:00
线程倾向于混淆大多数分析器,因为它们不确定如何计算一个线程被阻塞、另一个线程等待工作的时间(如果您没有使用线程池)。
在我们的经验中,应该检查两个分析器: 1. 埃卡特奇有一个免费的分析器,用于分析代码注入。它只工作到方法级别,但在64位上工作,可以让您了解您的时间流向。2.红门蚂蚁分析器是我们用来钻入行级时间的最好工具,如果有线程被阻塞,等待执行时间的很大一部分,这是至关重要的。
尽管如此,如果您可以在没有用户界面的情况下运行测试,那么我强烈建议您设置一些NUnit性能测试,以便每次都能以完全相同的方式快速、轻松地重复它们。通过使用方法级分析器,您可以看到自己的时间在哪里,提出并检查单个优化,等等。您会惊讶于为什么从一个地方花时间只会将时间添加到另一个地方,因为线程最终会互相等待,所以进行一个完全可重复的测试非常有用。
Eqatech分析器修改编译后的IL,因此每当您重新运行该IL时,您就会得到一个新的性能跟踪文件,因此它应该适合您的命令行场景。我相信蚂蚁也能做类似的工作。
最后,如果您的应用程序要在多个环境中使用,我肯定会建议在单处理器或仅在超级线程的处理器上运行一些性能测试。当您非常积极地对多核进行调优时,您最终可能会增加足够的开销,从而导致死锁或在少量处理器上缓慢运行。
发布于 2009-03-13 21:29:11
红门有一个分析器,如果我没记错的话,不能告诉你它是否有你所需要的,但是试一试?)
发布于 2009-03-13 21:31:44
https://stackoverflow.com/questions/644672
复制相似问题