适用于C ++的免费内存分析器工具 [英] Free Memory Profiler Tool for C++

查看:112
本文介绍了适用于C ++的免费内存分析器工具的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨朋友们,



你能不能为C ++建议一个免费的Memory Profiler工具(Visualstudio2005)。

注意:我想要能够看到内存使用图...



问候

Narayana Reddy.L

Hi Friends,

Could you please suggest a free Memory Profiler Tool for C++(Visualstudio2005).
Note : I would like to be able to see Memory Usage Graph..

Regards
Narayana Reddy.L

推荐答案

在这里你可以找到一些你可以用来工作的工具:



(1) Valgrind http://www.valgrind.org/ )是用于构建动态分析工具的仪器框架。 Valgrind工具可以自动检测许多内存管理和线程错误,并详细介绍您的程序。您还可以使用Valgrind构建新工具.Valgrind分发目前包括六个生产质量工具:内存错误检测器,两个线程错误检测器,缓存和分支预测分析器,调用图生成缓存和分支预测分析器和一个堆分析器。它还包括三个实验工具:堆/堆栈/全局数组溢出检测器,第二个堆分析器,用于检查堆块的使用方式,以及SimPoint基本块向量生成器。



(2) Memcheck 内存错误检测器

http://valgrind.org/docs/manual/mc-manual.html



(3)尝试 goole-perftools http://code.google .com / p / gperftools /?redir = 1

堆配置文件包含在TCMalloc中,我相信可以重置

堆在某个阶段之前使用,并在编写C ++测试后立即查询堆状态



Google框架上的各种平台(Linux,Mac OS X,Windows, Cygwin,Windows CE和Symbian)。

基于xUnit架构。支持自动测试发现,丰富的断言,用户定义的断言,死亡测试,致命和非致命故障,价值和类型参数化测试,运行测试的各种选项以及XML测试报告生成。



(4) AMD CodeAnalyst性能分析器
http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx )可帮助软件开发人员提高应用程序,驱动程序和系统软件的性能。经过良好调整的软件可通过缩短响应时间,提高吞吐量和更好地利用资源来提供更好的最终用户体验。 AMD CodeAnalyst是全球

开发人员使用的分析工具,用于改善游戏和面向媒体的应用程序,事务处理和高性能科学/工程计算的性能。



(5)内存验证器,C ++内存泄漏检测器(http://www.softwareverify.com/cpp-memory.php)内存验证器是内存泄漏和内存错误检测软件工具供软件开发人员,软件质量保证测试人员和客户支持人员使用。



(6) AQTime http://www.automatedqa.com/downloads/aqtime/index.asp ),这是最好的分析之一我用过的工具。它不是免费的,但您可以获得30天的试用期,因此如果您计划仅对一个项目进行优化和分析,并且30天就足够了,那么我建议您使用此应用程序。



(7) AMD代码分析师是免费的(http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx



(8 )微软有Windows性能分析工具

(http://msdn.microsoft.com/en-us/performance/default.aspx)



(9) Proffy http://www.pauldoo.com / proffy / )用于Windows的本机代码分析器(用于在Windows下分析本机代码应用程序的免费软件。仅限于采样,没有侵入式检测。调用图形分析.GUI-less。在您的应用程序中包含单个C ++头文件完全控制探查器启动和停止的时间。

结果保存为XML(可在浏览器中查看)和Graphvizdot。可以配置多线程应用程序。



(10) Shiny http://code.google.com/ p / shinyprofiler / 是一个闪电般快速,完整记录和&最简单易用的C / C ++ / Lua剖面仪,没有广泛的手术。结果平滑&在运行时显示为调用树或按时间排序。输出也可以作为Ogre3D或您的自定义引擎中的图形呈现



(11)非常困倦 http://www.codersnotes.com/sleepy/ )是一个用于Windows系统的C / C ++ CPU分析器。

非常困倦有船载改进,例如调用图分析,改进的UI,加载保存,GCC支持和64位支持。它支持任何本机Windows应用程序,如果它具有标准PDB或DWARF2调试信息。不需要重新编译 - 它可以在运行时附加到任何应用程序。

Sleepy是在GNU公共许可证下发布的,因此您可以保证获得源代码的权利并按照您的意愿进行更改。



(12) Rational Purify http://www-01.ibm。 com / software / awdtools / purify / http://www-01.ibm。 com / software / awdtools / purify / win / 是一个动态的软件分析工具.Pinpoints很难找到内存错误,如未初始化的内存访问,缓冲区溢出和不正确的内存释放。标识内存泄漏(不再具有有效指针的内存块)。不需要访问源代码,因此可以与第三方库一起使用。支持Visual C ++和.NET与Microsoft®VisualStudio集成。支持操作系统:Windows系列。

它包括两个功能:

1)内存调试(很难精确定位)找到内存错误,如未初始化的内存访问,

缓冲区溢出和不正确的内存释放),

2)内存泄漏检测

(标识内存不再有有效指针的块)。

在Windows,Linux,Solaris和AIX上支持Purify。



(13) DevPartner (< a href =http://www.microfocus.com/products/product-trials/index.aspx?ref=ddm?dpprodtry> http://www.microfocus.com/products/product-trials/index.aspx ?ref = ddm?dpprodtry [ ^ ])代码质量,静态,运行时和安全性分析

DevPartner是一个虚拟专家,可以自动检测和诊断潜伏在应用程序中的软件缺陷,性能问题和安全漏洞代码。



(14) Profiler - EQATEC http: //eqatec.com/

欢迎您创建一个免费的15天试用帐户并通过我们的在线文档自行评估我们的解决方案



P / S

你可能想看一下CRT Debug Heap(来自cr) tdbg.h)已在VS2005中提供。

报告粗糙,没有用户界面驱动它(除非你可以在谷歌找到一些东西),

但它可能有你想要的信息 - 并且你已经拥有它:

http://msdn.microsoft.com/ en-us / library / x98tx3cf.aspx
Here you could find some tools that you could use for your work:

(1) Valgrind ( http://www.valgrind.org/ ) is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.The Valgrind distribution currently includes six production-quality tools: a memory error detector,two thread error detectors, a cache and branch-prediction profiler, a call-graph generating cache and branch-prediction profiler, and a heap profiler. It also includes three experimental tools: a heap/stack/global array overrun detector, a second heap profiler that examines how heap blocks are used, and a SimPoint basic block vector generator.

(2)Memcheck a memory error detector
(http://valgrind.org/docs/manual/mc-manual.html)

(3)Try the goole-perftools ( http://code.google.com/p/gperftools/?redir=1 )
Heap profiling is included in TCMalloc, and I believe it is possible to "reset"
heap usage just before your "certain stage", and query the heap state right after

Google's framework for writing C++ tests (http://code.google.com/p/googletest/)on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian).
Based on the xUnit architecture. Supports automatic test discovery, a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.

(4)AMD CodeAnalyst Performance Analyzer (http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx) helps software developers to improve the performance of applications, drivers and system software. Well-tuned software delivers a better end-user experience through shorter response time, increased throughput and better resource utilization. AMD CodeAnalyst is a profiling tool used by
developers worldwide to improve the performance of games and media-oriented applications, transaction processing, and high performance scientific/engineering computation.

(5)Memory Validator,C++ memory leak detector(http://www.softwareverify.com/cpp-memory.php)Memory Validator is a memory leak and memory error detection software tool for use by software developers, software quality assurance testers and customer support staff.

(6)AQTime (http://www.automatedqa.com/downloads/aqtime/index.asp), it is one of the best profiling tools I've ever used. It isn't free but you can get a 30 day trial, so if you plan on a optimizing and profiling only one project and 30 days are enough for you then I would recommend using this application.

(7) AMD Code Analyst is free (http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx)

(8) Microsoft has there Windows Performance Analysis tools
(http://msdn.microsoft.com/en-us/performance/default.aspx)

(9)Proffy (http://www.pauldoo.com/proffy/)A native code profiler for Windows (Free software for profiling native code applications under Windows.Sampling only, no intrusive instrumentation.Call graph profiling. GUI-less. Include a single C++ header file into your application to control exactly when the profiler starts and stops.
esults saved to XML (viewable in your browser) and Graphviz "dot".Can profile multi-threaded applications.

(10) Shiny ( http://code.google.com/p/shinyprofiler/ ) is a lightning fast, fully documented & by-far-easiest-to-use C/C++/Lua profiler with no extensive surgery. Results are smoothed & shown in run-time as a call-tree or sorted-by-time. Output also renderable as graphs in Ogre3D or your custom engine

(11)Very Sleepy (http://www.codersnotes.com/sleepy/) is a C/C++ CPU profiler for Windows systems.
Very Sleepy has a boatload of improvements in, such as call-graph profiling, an improved UI, load-save, GCC support, and 64-bit support. It supports any native Windows app, if it has standard PDB or DWARF2 debugging information. No recompilation is necessary – it can just attach to any app as it’s running.
Sleepy is released under the GNU Public License, so you’re guaranteed the right to the source code and to change it how you wish.

(12)Rational Purify ( http://www-01.ibm.com/software/awdtools/purify/ and http://www-01.ibm.com/software/awdtools/purify/win/ ) is a dynamic software analysis tool .Pinpoints hard to find memory errors such as uninitialized memory access, buffer overflow and improper freeing of memory. Identifies memory leaks (memory blocks that no longer have a valid pointer). Does not require access to source code and can thus be used with third-party libraries. Supports Visual C++ &.NET Integrates with Microsoft® Visual Studio.Operating systems supported: Windows famil.
It includes two capabilities:
1) Memory debugging (pinpoints hard to find memory errors such as uninitialized memory access,
buffer overflow and improper freeing of memory),
2) Memory leak detection
(identifies memory blocks that no longer have a valid pointer).
Purify is supported on Windows, Linux, Solaris, and AIX.

(13) DevPartner (http://www.microfocus.com/products/product-trials/index.aspx?ref=ddm?dpprodtry[^])code quality, static, run time and security analysis
DevPartner is a virtual expert that automatically detects and diagnoses software defects, performance problems and security vulnerabilities lurking within application code.

(14) The Profiler - EQATEC (http://eqatec.com/ )
You’re welcome to create a free 15 days trial account and evaluate our solution on your own backed by our online documentation

P/S
You might want to look at the CRT Debug Heap (via crtdbg.h) that is already available in VS2005.
The reports are crude and there's no UI to drive it (unless you can find something on Google maybe),
but it might have the information you're looking for - and you already have it:
http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx


您有什么理由不想使用任务管理器吗?它没有很大的粒度,但你仍然可以看到内存使用情况和发生的任何增量,所以任何明显的内存泄漏仍然很明显。



如果这还不够,也许如果你指定了为什么需要它,你可以从用户那里得到其他建议。
Is there any reason why you would not want to use the task manager? It doesn't have a great deal of granularity but you can still see memory usage and any deltas that occur, so any blatant memory leaks are still apparent from there.

If that is not sufficient, perhaps if you specify why you need it you can get other suggestions from users.


在管理工具中看到有性能监视器。您可以为任何类型的资源添加数据收集器集,系统或用户定义。您可以将结果输出到二进制或文本文件,使用结果来制作图表,图形,趋势,计算。它是一个非常先进的工具,它已经存在于Windows管理工具中。

尝试使用它,如果您有更多问题,请询问。

更多确切的信息关于内存分配,你可以使用WinDBG。您可以从microsoft站点免费下载。您还可以使用Debug Diag。
See in Administrative Tools there is the Performance Monitor. You can add there Data Collector Sets, system or user defined, for any kind of resources. You can output results to binary or textual files, use results to make charts, graphs, trends, calculations. It is a very advanced tool, and it already exists in the Windows Administrative Tools.
Try to use it, and if you have more question, ask.
More exact information about memory allocations, you can get with WinDBG. You can download it for free from microsoft site. Also more advanced reports you can make with Debug Diag.


这篇关于适用于C ++的免费内存分析器工具的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆