正如 jakob engblom 2 指出的那样,valgrind 有一套工具。根据您所讨论的窗口类型,有不同的窗口对应部件。我在这里只提到OSS或免费工具。
1.内存检查:
记忆博士。它是一个相对较新的工具,在 Windows 7 上运行得很好。我最喜欢的功能是它在报告中对相同泄漏的分配堆栈进行分组。
http://code.google.com/p/drmemory/ http://code.google.com/p/drmemory/
我也用过 UMDH(http://support.microsoft.com/kb/268343 http://support.microsoft.com/kb/268343)并发现它非常有用且易于设置。它适用于Win2000到Win7。
AppVerifier 是 Windows 原生代码开发人员必备的工具,它的“内存”检查器可以完成类似的工作http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx
2. 呼叫研磨:
我最喜欢的是很困(http://www.codersnotes.com/sleepy http://www.codersnotes.com/sleepy)它很小,但非常有用且易于使用。
如果您需要更多功能,AMD CodeAnalyst™性能分析器是免费的:http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx
Windows 性能分析工具是 Microsoft 免费提供的,不太好用,但如果您愿意花时间,也可以完成工作。http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx下载:http://msdn.microsoft.com/en-us/performance/cc752957 http://msdn.microsoft.com/en-us/performance/cc752957
3. 地块:
Windows 上类似(不完全匹配)的免费工具有:
来自 sysinternals 的 VMMap :http://technet.microsoft.com/en-us/sysinternals/dd535533 http://technet.microsoft.com/en-us/sysinternals/dd535533
Windbg 中的 !heap 命令:http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html
4.缓存研磨:
上面提到的 Windows 性能工具具有一定水平的 L2 缓存未命中分析功能,但不如 Cachegrind 那么好和易于使用。
5. DRD:
还没有在 Windows 上找到任何免费且功能强大的工具,我能找到的唯一稍微接近的 Windows 免费工具是“锁定”检查器
应用程序验证器:http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx