适用于Windows的体面探查器
Decent profiler for Windows?
windows是否有合适的采样(例如非仪器化)分析器可用?最好是类似于MacOS上的Shark的东西,尽管我愿意接受我将不得不在windows上为这样一个探查器付费。
我在VS Team Suite中尝试过探查器,并没有留下太多印象,我想知道是否还有其他好的探查器。
【编辑:呃,我忘了说这是针对C/C++的,而不是.NET的——很抱歉造成任何混淆】
对于Windows,请查看Windows SDK附带的免费Xperf。它使用采样的配置文件,有一些有用的UI,&不需要仪器。对于跟踪性能问题非常有用。您可以回答以下问题:
谁使用的CPU最多?使用调用堆栈向下搜索到函数名称。
谁在分配最多的内存?
未分配内存(泄漏)
谁进行的注册表查询最多?
磁盘写入?等等
我知道在这个问题被问到几个月后我会添加我的答案,但我想我会指出一个不错的开源分析器:Very Sleepy。
它没有前面提到的其他一些评测器那样的功能,但它是一个非常值得尊敬的采样评测器,在大多数情况下都能很好地工作。
"英特尔VTune"很好,而且不进行检测。我们评估了一大堆适用于Windows的评测器,这是处理驱动程序代码的最佳方法(尽管它也处理非托管用户级代码)。一个特别的优势是,它可以读取所有英特尔处理器性能计数器,因此您可以很好地了解代码运行缓慢的原因,它有助于将预取指令放入我们的代码中,并对数据布局进行排序,使其与缓存行以及多核系统中缓存行无效的方式配合使用。
它是商业性的,我不得不说它不是世界上最简单的用户界面。
AMD的CodeAnalyst是免费此处
我们同时使用VTune和AQTime,我可以为两者担保。哪种最适合你取决于你的需求。两者都有免费试用版——我建议你试一试。
Windows驱动程序工具包包括一个名为"kernrate"的非检测用户/内核采样探查器。它对于分析多进程应用程序、将大部分时间花在内核中的应用程序以及设备驱动程序(当然)似乎很有用。它也可以在KrView(Kernrate Viewer)和WindowsServer2003资源工具包工具包中找到。
Kernrate适用于Windows 2000及更高版本(与Xperf不同,后者需要Vista/Server 2008)。它是基于命令行的,文档中有一系列令人生畏的选项。我不确定它是可以记录调用堆栈还是只记录程序计数器。如果使用符号服务器,请确保将最新的dbghelp.dll
和symsrv.dll
与kernrate.exe
放在同一目录中,以防止其使用安装在%SystemRoot%system32
中的dbghelp.dll
的旧版本。
大约两年前,我在一个相当大的项目中尝试过英特尔的vtune。当时这是一个检测探查器,我试图对DLL进行检测花了很长时间,一个小时后我最终失去了耐心。
我非常成功的一个工具是AQTime,我强烈推荐它。它不仅提供了出色的性能评测资源,而且还进行了非常好的内存评测,这对我追踪内存泄漏有很大帮助。
Luke Stackwalker似乎很有希望——它没有我想要的那么完美,但它是开源的,它确实做了一些似乎非常接近@Mike Dunlavey一直说我们应该做的事情。)
据我所知,它甚至似乎计算了在内核中等待的时间。。。
我不确定什么是非检测探查器,但我可以说,对于.NET,我喜欢RedGate的ANTS探查器。版本3在易用性方面胜过MS版本,版本4允许任意时间片,这让MS看起来像个笑话。
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- CUDA内核printf()在终端中不产生输出,在探查器中工作
- 为什么我在探查器中看到__scalbnf?
- 如何用逗号分隔输出?如何改进此代码以使其看起来更体面?
- 附加到 C++/CLI dll 的性能探查器无法访问本机C++代码
- 一种体面的方式来转换const列表参考参数,然后传递到另一个函数
- c++代码的探查器,非常困
- 为 C/C++ 编写检测探查器的最简单方法是什么?
- 探查器中的cudaErrorIllegalAdress
- Opengl透明立方体面
- CLR 探查器:COM 样式的强制转换和从派生接口调用函数
- 寻找低影响的 c++ 探查器
- Netbeans 7.1.2 中的C++探查器在哪里
- 使用 Visual Studio 2012 探查器分析 C++
- 我已经设置了 CPUPROFILE 环境变量和链接的 -lprofiler。为什么 gperftools 不启动探查器?
- C++探查器,它显示程序特定部分的调用路径
- 立方体面被隐藏表面覆盖
- NVIDIA Visual探查器不生成时间线
- VTune 探查器给出错误:"The Data Cannot be displayed,there is no viewpoint available for data "
- 适用于Windows的体面探查器