- 1. Simple use of memory leaks and malloc debug libraries for C and C + + programs under Ccmalloc-linux and Solaris.
- 2. dmalloc-debug Malloc Library.
- 3. Electric Fence-linux the malloc () debug library written by Bruce Perens in the distribution release.
- 4. leaky-linux detects a memory leak under the program.
- 5. Trace and analyze memory leaks in C + + programs under Leaktracer-linux, Solaris, and HP-UX.
- 6. memwatch-written by Johan Lindh, is an open source C language Memory error Detection tool, mainly through the GCC precessor.
- 7. Valgrind-debugging and profiling Linux programs, aiming at programs written in C and C++.
- 8. kcachegrind-A visualization tool for the profiling data generated by Cachegrind and calltree.
- 9. Leak Monitor-a Firefox extension to find out the types of leaks associated with Firefox.
- ie Leak Detector (drip/ie Sieve)-drip and IE Sieve Leak Detectors helps web developers improve the performance of dynamic Web pages by reporting avoidable memory leaks due to IE limitations.
- Windows Leaks Detector-Detects any resource leaks (memory, handles, etc.) in any WIN32 application and calls hooks based on the win API.
- SAP Memory Analyzer-an open-source, Java-analysis software that can be used to help find memory leaks in Java programs, easily find chunks of memory and verify who has been occupying it , it is based on Eclipse RCP (Rich Client Platform) and can download the standalone version of RCP or the plugin for eclipse.
- DTrace-Dynamically tracked dynamic tracing-is an open source software that runs on Unix-like platforms, enabling users to dynamically detect operating system cores and user processes to more accurately understand the system's resource usage. Improve system performance, reduce support costs, and make effective adjustments.
- IBM Rational purifyplus-helps developers to identify performance and reliability errors in C + +, managed. NET, Java, and VB6 code. Purifyplus combines features such as memory error and leak detection, application performance description, and code coverage analysis in a single, complete toolkit.
- Parasoft insure++-a run-time error auto-detection Tool for C + + applications that automates the monitoring of A/C + + program to detect memory corruption, memory leaks, Errors such as pointer errors and I/O. And through the use of a unique set of technologies (SCI technology and mutation testing, etc.), thoroughly examine and test our code, pinpoint the exact location of the error and give detailed diagnostic information. Can run as a plug-in for Microsoft Visual C + +.
- Compuware DevPartner for Visual C + + BoundsChecker Suite-run error detection and debugging tool software designed for C + + developers. Run as a plug-in for Microsoft Visual Studio and C + + 6.0.
- Electric software glowcode-includes features such as memory leak checking, code Profiler, function call tracking, and more. Provides a complete error diagnosis for C + + and. NET developers, and a run-time performance Analysis Toolkit.
- Compuware devpartner java Edition-includes Java memory detection, code coverage testing, code performance testing, thread deadlock, distributed applications, and several other major functional modules.
- Quest JProbe-Analyze the memory leaks in Java.
- ej-technologies jprofiler-A full-featured Java profiling tool designed to analyze J2SE and EE applications. It combines the profiling of CPUs, threads, and memory in a powerful application. Jprofiler provides many IDE consolidation and application server consolidation purposes. Jprofiler Intuitive GUI allows you to find performance bottlenecks, capture memory leaks, and solve thread problems. 4.3.2 Registration code: a-g666#76114f-1olm9mv1i5uuly#0126
- BEA JRockit-Used to diagnose Java memory leaks and identify root causes, designed specifically for Intel platforms and optimized for maximum performance on Intel hardware.
- SciTech software AB . NET memory Profiler- find memory leaks and optimize memory usage for c#,vb.net, or other. NET program.
- yourkit . NET & java Profiler-industry-leading performance analysis tools for Java and. NET programs.
AutomatedQA aqtime-automatedqa's award-winning products performance profiling and memory debugging toolset for next-generation replacement products, supporting Microsoft, Borland, Intel, Compaq and GNU compilers. can be for. NET and Windows programs generate comprehensive reports that help you easily isolate and troubleshoot performance issues and memory/resource leaks that are contained in your code. Support for. Net 1.0,1.1,2.0,3.0 and Windows 32/64-bit applications.
- JavaScript Memory Leak Detector-A debugging tool released by the Microsoft global Product Development European team (Development-europe team, GPDE) Used to detect memory leaks in JavaScript code and run as a plug-in for the IE series.
Appendix: How memory leaks occur
- Frequent memory leaks. The code that occurs in memory leaks is executed multiple times, causing a memory leak each time it is executed.
- Sporadic memory leaks. Code that occurs with a memory leak occurs only under certain circumstances or during operation. The occurrence and the incidental sex are opposite. For a given environment, the occasional may become a frequent occurrence. So test environments and test methods are critical to detecting memory leaks.
- Disposable memory leaks. The code that occurs with a memory leak is only executed once, or because of an algorithmic flaw, there is always a block and only one piece of memory leaks.
- An implicit memory leak. The program keeps allocating memory while it is running, but it does not release memory until the end. Strictly speaking, there is no memory leak, because the final program frees up all the requested memory. But for a server program that needs to run for days, weeks, or months, not releasing memory in time can also result in the eventual exhaustion of all of the system's memory. So, we call this kind of memory leak as an implicit memory leak.
What is System resources?
When an application runs in Windows, Windows must "track" The Running of the application in real time and retain many of the information associated with it, such as buttons, cursors, location and bitmap of the menu, the State of the window, etc., which are kept by windows in a block of memory called heaps. Heaps of English are heap. Simply put, a heap is a block of memory that is managed by a special mechanism. A heap managed by a system kernel User.exe windows is called the user Resource heap, and the heap managed by another system kernel Gdi.exe is called the GDI resource heap (graphical Device Interface Resource Heap, referred to as the GDI Resource heap), the user resource heap and the GDI resource heap, called the system Resource heap, are customarily referred to as system resources (systems Resource).
Microsoft divides Windows ' system resources (heaps) into five heaps, where the user resource heap is three and the GDI resource Heap is two.
The three user resource heaps are: 16-bit subscriber HEAP,64KB, 32-bit window heap (Windows HEAP,2MB), and 32-bit user menu heap,2mb.
The two GDI resource heaps are: 16-bit GDI heap (GDI HEAP,64KB), and 32-bit GDI heap (GDI,2MB).
From here the system resource classification and size we should understand that whether the CPU is P4 or 486, memory is 8M or 1G, all Windows users have the same size of system resources (heap), users can not control the size of the system resources, which is determined by the operating system, Has nothing to do with hardware grade.
The available (free) space for the user resource heap and the GDI resource heap for Windows is known as available user resources and available GDI resources, which are expressed as percentages in Windows, and users can select Start/Accessories/System Tools/system information to see their size in real time.
http://blog.csdn.net/adcxf/article/details/2822441
Memory Leak Detection Tool (25 models)