【发布时间】:2012-03-25 20:39:21
【问题描述】:
我最近安装了(评估)Visual Studio 2008 TS,以便能够对应用程序进行一些分析。现在我才发现,当应用程序比“Hello World”更复杂时,我对(现实世界)分析知之甚少。
我的主要问题是集成调试器似乎增加了所有线程花费的时间,所以我得到了总运行时间的好几倍,而且某些功能(如睡眠)出现了好几次,我假设因为它们被几个调用线程。
现在我的问题是:我怎样才能使它更容易检查?我只对一个线程感兴趣(主要的线程完成所有工作),其他线程只是在等待某些东西,并且完全受到我的主线程运行时间的限制。 (虽然它们位于相同的模块中,有时调用相同的函数。)
有什么方法可以设置分析吗?有什么方法可以处理结果以使它们对我的场景更有意义? VS 2008 以外的任何其他解决方案(如 2010 或外部分析器)?
我现在正在使用 .net 3.5 下的 C# 进行检测(在我看来,结果比采样更好)。
【问题讨论】:
-
您选择 2008 年而不是 2010 年有什么原因吗?后者配备了坚如磐石的剖面仪
-
JetBrains 也是一个非常好的分析器。 jetbrains.com/profiler
-
你的目标是什么?是使用分析器还是加速?如果你想加快速度,there's a better way。剖析带有很多神话explained here。
-
@Mika 该项目是为 2008 年设立的。没有其他原因。我想 2010 年应该很顺利 - 与旧版本不同(我在 C++ 6 -> 2003 上遇到问题)
-
@Ioannis 它支持多线程吗?我在这里查看了stackoverflow.com/questions/3927/…,并检查了大多数产品是否有关于 mt 的信息。似乎只有英特尔 VTune 可以做到这一点。 :) 但它不是 .net。
标签: c# multithreading performance profiling profiler