![]() |
1
11
Intel VTune 是好的,不是工具。我们为Windows评估了大量的分析器,这对于使用驱动程序代码是最好的(尽管它也使用非托管的用户级代码)。一个特别的优点是它读取所有的英特尔处理器性能计数器,这样您就可以很好地理解代码运行缓慢的原因,并且它对于将预取指令放入我们的代码、整理数据布局以与缓存线良好配合以及在多核系统中使缓存线失效的方式非常有用。 它是商业的,我不得不说它不是世界上最简单的用户界面。 |
![]() |
2
16
对于Windows,请查看免费的 Xperf 随Windows SDK一起提供。它使用采样配置文件,具有一些有用的用户界面,不需要检测。对于跟踪性能问题非常有用。您可以回答以下问题: 谁使用的CPU最多?使用调用堆栈向下钻取函数名。 谁分配的内存最多? 未完成的内存分配(泄漏) 谁在执行最多的注册表查询? 磁盘写入?等。 |
![]() |
3
12
我知道我要在被问到这个问题几个月后添加我的答案,但我想我会指出一个体面的开源剖析器: Very Sleepy . 它没有前面提到的其他一些分析程序所具有的功能计数,但是它是一个相当值得尊敬的采样分析程序,在大多数情况下都能很好地工作。 |
![]() |
5
4
我们同时使用vtune和aqtime,我可以保证两者都使用。哪个对你最有效取决于你的需要。两个都有免费试用版-我建议你试一试。 |
![]() |
6
3
这个 Windows Driver Kit 包括一个非检测用户/内核采样探查器 "kernrate" . 它对于分析多进程应用程序、在内核中花费大部分时间的应用程序以及设备驱动程序(当然)似乎很有用。它也可以在 KrView (Kernrate Viewer) 和 Windows Server 2003 Resource Kit Tools 包装。
kernrate在Windows 2000和更高版本上工作(与xperf不同,xperf需要Vista/Server2008)。它是基于命令行的,文档中有一些令人生畏的选项列表。我不确定它是否能记录调用堆栈或只是程序计数器。如果使用符号服务器,请确保
|
![]() |
7
2
两年前,我用一个相当大的项目尝试了英特尔的“vtune”。当时它是一个检测分析器,检测DLL花费了很长时间,以至于我试图分析它,一个小时后我终于失去了耐心。 我有一个非常成功的工具,我强烈推荐它是 AQTime . 它不仅提供了出色的性能分析资源,而且还提供了非常好的内存分析功能,这对我跟踪内存泄漏有很大帮助。 |
![]() |
8
1
Luke Stackwalker 看起来很有希望——它没有我想要的那么完美,但是它是开源的,它确实做了一些看起来非常接近@mike dunlavey一直说我们应该做的事情。(当然,然后它会试图将所有这些信息都简化成迈克非常厌倦的典型无用的调用图,但是用源作为我们的盟友来解决这个问题并不太难。) 据我所知,它甚至可以计算在内核中等待的时间… |
![]() |
9
-3
我不确定什么是非检测分析器,但我可以说,对于.NET,我喜欢Redgate的蚂蚁分析器。版本3比MS版本更易于使用,版本4允许任意时间段,使MS看起来像一个笑话。 |
![]() |
Sweepy Dodo · JSON lite的格式化 5 月前 |
![]() |
giantjenga · 优化整数向量到二进制向量的转换 6 月前 |
![]() |
Zegarek · Postgresql递归查询未提供预期结果 7 月前 |
![]() |
Joe · 为什么这两个查询之间的性能存在如此大的差异? 10 月前 |
![]() |
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 10 月前 |
![]() |
Mohan · 是否有一种更快的方法来编写代码,从1:N中提取许多随机样本? 11 月前 |
![]() |
user2980746 · 在C#字典中键入xyz对的最有效方法是什么? 11 月前 |