Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

Profiling and Memory Checking Tools: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(→‎Linux, Mac OS X: add heaptrack)
 
(19 intermediate revisions by 12 users not shown)
Line 1: Line 1:
=Tools for Profiling and Memory Checking=
{{LangSwitch}}
[[Category:Tools]]
This is a collection of tools for profiling and memory checking. It's mostly a summary of programs/libraries mentioned in the forums, notably in threads [http://forum.qt.io/topic/1892/advice-on-checking-for-memory-leaks-and-dangling-resources/3 Advice on checking for memory leaks and dangling resources?] and [http://forum.qt.io/topic/2200/other-tools-for-qt-development/2 Other tools for Qt Development]


This is a collection of tools for profiling and memory checking. It’s mostly a summary of programs/libraries mentioned in the forums, notably in threads “Advice on checking for memory leaks and dangling resources?”/forums/viewthread/1924 and [[forums/viewthread/2248/|Other tools for Qt Development]].
===Linux, Mac OS X===
 
Valgrind is the tool of choice for analyzing a variety of issues on Linux and Mac OS X. It uses individual tools for specific analysis like profiling and memory checking. Qt Creator's Analyze mode integrates Valgrind, and provides both memory checking and profiling functionality from within the IDE. Valgrind needs to be installed for that to work. Valgrind is not available on Windows, but since memory issues are usually not platform dependent, analysis can be done on Linux or Mac OS X as well.
 
*[http://valgrind.org/ Valgrind]
 
There is a tutorial on how to debug C++ code with Valgrind on Linux at http://devmentor.posterous.com/debugging-with-valgrind (dead link---cached at https://web.archive.org/web/20130414182417/http://devmentor.posterous.com:80/debugging-with-valgrind)


===Linux, Mac OS X===
*[http://kcachegrind.sourceforge.net/html/Home.html KCacheGrind]
 
Visualizer for Valgrind profiling results
 
*[http://www.valgrind.org/downloads/current.html Valkyrie]
 
Qt4-based GUI for the Valgrind 3.6.x and 3.7.x series
 
*[https://projects.kde.org/projects/extragear/sdk/massif-visualizer Massif Visualizer]


Valgrind is the tool of choice for analyzing a variety of issues on Linux and Mac OS X. It uses individual tools for specific analysis like profiling and memory checking. Qt Creator’s Analyze mode integrates Valgrind, and provides both memory checking and profiling functionality from within the <span class="caps">IDE</span>. Valgrind needs to be installed for that to work. Valgrind is not available on Windows, but since memory issues are usually not platform dependent, analysis can be done on Linux or Mac OS X as well.
visualizer for the massif (one of the valgrind tools) output


* [http://valgrind.org/ Valgrind] ''[valgrind.org]''<br /> There is a tutorial on how to debug C++ code with Valgrind on Linux at http://devmentor.posterous.com/debugging-with-valgrind
*[https://blog.qt.io/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt/ AddressSanitizer] Memory monitoring tool built into gcc 4.8 and clang
* [http://kcachegrind.sourceforge.net/html/Home.html KCacheGrind] ''[kcachegrind.sourceforge.net]''<br /> Visualizer for Valgrind profiling results
* [http://www.valgrind.org/downloads/current.html Valkyrie] ''[valgrind.org]''<br /> Qt4-based <span class="caps">GUI</span> for the Valgrind 3.6.x and 3.7.x series
* [https://projects.kde.org/projects/extragear/sdk/massif-visualizer Massif Visualizer] ''[projects.kde.org]''<br /> visualizer for the massif (one of the valgrind tools) output
* [https://blog.qt.io/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt/ AddressSanitizer] ''[blog.qt.io]'' Memory monitoring tool built into gcc 4.8 and clang


===Windows===
KDE heaptrack


* [http://smartbear.com/products/development-tools/performance-profiling/ <span class="caps">AQT</span>ime] ''[smartbear.com]'' (commercial)<br /> can detect memory leaks, but is mainly for profiling
*[https://github.com/KDE/heaptrack Heaptrack] traces all memory allocations and annotates these events with stack traces. So you generally use it to find the "big spenders" of memory, whereas other tools are more focused on detecting memory leaks.
* [http://www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx Bounds Checker] ''[microfocus.com]''
* [http://deleaker.com/ Deleaker] ''[deleaker.com]'' (commercial) detects memory, <span class="caps">GDI</span> and other leaks
* [http://www.drmemory.org/ Dr.Memory] ''[drmemory.org]'' (Open-source memory monitoring tool)
* [http://software.intel.com/en-us/articles/intel-parallel-inspector/ Intel Parallel Inspector] ''[software.intel.com]'' (commercial)
* [http://lukestackwalker.sourceforge.net/ Luke Stackwalker] ''[lukestackwalker.sourceforge.net]'' (Open-source <span class="caps">CPU</span> profiler based on sampling)
* [http://www-01.ibm.com/software/awdtools/purify/win/ Rational Purify] ''[01.ibm.com]'' (commercial)
* [http://vld.codeplex.com/ Visual Leak Detector] ''[vld.codeplex.com]''
* [http://www.codersnotes.com/sleepy Very Sleepy] ''[codersnotes.com]'' (Open-source <span class="caps">CPU</span> profiler based on sampling)
* Visual Studio Profiler (up to VS 2010 only in the ultimate version, VS 11 will have it in the professional version)


===Categories:===
===Windows===


* [[:Category:Tools|Tools]]
*[http://smartbear.com/product/aqtime-pro/overview/ AQTime Pro] (Commercial - €539) Find Issues & Memory Leaks with Application Runtime Analysis & Performance Profiling
*[http://www.borland.com/en-GB/Products/Software-Testing/Automated-Testing/Devpartner-Studio Borland Bounds Checker] (Commercial)
*[http://deleaker.com/ Deleaker] (Commercial - $99) Deleaker is a tool for C++ developers who want to find all possible known leaks in their projects. Detects memory, GDI and other leaks.
*[http://www.drmemory.org/ Dr.Memory] (Open-source) v1.9.0 | 2015-10-02 | Memory monitoring tool (Not working with Qt currently due to a [https://github.com/DynamoRIO/drmemory/issues/1921 bug])
*[https://software.intel.com/en-us/intel-inspector-xe Intel Inspector XE] (Commercial - $1599) Memory and Thread Debugger
*[http://lukestackwalker.sourceforge.net/ Luke Stackwalker] (Open-source) v0.9.9 | 2010-12-22 | CPU profiler based on sampling
*[http://unicomsi.com/products/purifyplus/ UNICOM Systems PurifyPlus] (Commercial) PurifyPlus is a runtime analysis tool suite that monitors your program as it runs and reports on key aspects of its behavior.
*[http://vld.codeplex.com/ Visual Leak Detector for Visual C++ 2008-2015] (Open-source) v2.4rc2 | 2014-04-06 | Visual Leak Detector is a free, robust, open-source memory leak detection system for Visual C++.
*[http://www.codersnotes.com/sleepy Very Sleepy] (Open-source) v0.90 | 2014-12-23 | CPU profiler based on sampling (can't be attached to Qt processes on Windows 10 x64)
*[https://www.visualstudio.com/downloads/download-visual-studio-vs Visual Studio Profiler] (Free in Visual Studio 2013 and 2015 Community Editions) CPU Sampling, Instrumentation, .NET Memory allocation, Resource Contention
*[https://github.com/milostosic/MTuner MTuner] (Free) MTuner utilizes a novel approach to memory profiling & analysis, keeping entire time-based history of memory operations.
*[https://sourceforge.net/projects/diagnostic/ Memory Leak Detection Tool] (Free, Open source code) High performance memory leak detection tool, 32/64-bit architectures are supported
*[https://github.com/ssbssa/heob heob] (Free, open-source) Detects buffer overruns and memory leaks. [https://doc.qt.io/qtcreator/creator-heob.html Integrated into Qt Creator].
*[https://www.relyze.com/wonderleak_overview.html WonderLeak] (Free) - A high performance Windows heap and handle allocation profiler.

Latest revision as of 18:35, 11 October 2022

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

This is a collection of tools for profiling and memory checking. It's mostly a summary of programs/libraries mentioned in the forums, notably in threads Advice on checking for memory leaks and dangling resources? and Other tools for Qt Development

Linux, Mac OS X

Valgrind is the tool of choice for analyzing a variety of issues on Linux and Mac OS X. It uses individual tools for specific analysis like profiling and memory checking. Qt Creator's Analyze mode integrates Valgrind, and provides both memory checking and profiling functionality from within the IDE. Valgrind needs to be installed for that to work. Valgrind is not available on Windows, but since memory issues are usually not platform dependent, analysis can be done on Linux or Mac OS X as well.

There is a tutorial on how to debug C++ code with Valgrind on Linux at http://devmentor.posterous.com/debugging-with-valgrind (dead link---cached at https://web.archive.org/web/20130414182417/http://devmentor.posterous.com:80/debugging-with-valgrind)

Visualizer for Valgrind profiling results

Qt4-based GUI for the Valgrind 3.6.x and 3.7.x series

visualizer for the massif (one of the valgrind tools) output

KDE heaptrack

  • Heaptrack traces all memory allocations and annotates these events with stack traces. So you generally use it to find the "big spenders" of memory, whereas other tools are more focused on detecting memory leaks.

Windows

  • AQTime Pro (Commercial - €539) Find Issues & Memory Leaks with Application Runtime Analysis & Performance Profiling
  • Borland Bounds Checker (Commercial)
  • Deleaker (Commercial - $99) Deleaker is a tool for C++ developers who want to find all possible known leaks in their projects. Detects memory, GDI and other leaks.
  • Dr.Memory (Open-source) v1.9.0 | 2015-10-02 | Memory monitoring tool (Not working with Qt currently due to a bug)
  • Intel Inspector XE (Commercial - $1599) Memory and Thread Debugger
  • Luke Stackwalker (Open-source) v0.9.9 | 2010-12-22 | CPU profiler based on sampling
  • UNICOM Systems PurifyPlus (Commercial) PurifyPlus is a runtime analysis tool suite that monitors your program as it runs and reports on key aspects of its behavior.
  • Visual Leak Detector for Visual C++ 2008-2015 (Open-source) v2.4rc2 | 2014-04-06 | Visual Leak Detector is a free, robust, open-source memory leak detection system for Visual C++.
  • Very Sleepy (Open-source) v0.90 | 2014-12-23 | CPU profiler based on sampling (can't be attached to Qt processes on Windows 10 x64)
  • Visual Studio Profiler (Free in Visual Studio 2013 and 2015 Community Editions) CPU Sampling, Instrumentation, .NET Memory allocation, Resource Contention
  • MTuner (Free) MTuner utilizes a novel approach to memory profiling & analysis, keeping entire time-based history of memory operations.
  • Memory Leak Detection Tool (Free, Open source code) High performance memory leak detection tool, 32/64-bit architectures are supported
  • heob (Free, open-source) Detects buffer overruns and memory leaks. Integrated into Qt Creator.
  • WonderLeak (Free) - A high performance Windows heap and handle allocation profiler.