Home Products Contracting Purchase Resellers About Contact
Home Products Contracting Purchase Resellers About Contact
MemPro

C++ Memory Profiler

Supports: Windows, Unix, Linux, OSX, iOS, gcc

Note: MemPro only runs on Windows but can
connect to apps on these other platforms

Download

15 day free trial

MemPro Graph
MemPro Calltree
MemPro Calltree
MemPro Calltree

MemPro

MemPro is a C++ memory profiler. MemPro runs on Windows platforms, but can connect to and profile applications on almost any platform. MemPro particularly stands out from other C++ memory profilers for its ability to handle very large data sets.

Getting Started

Integrate MemPro into your codebase in minutes - simply add MemPro.cpp/h into your code and you will be able to connect to your application with MemPro. Once connected MemPro allows you to visualise your memory usage in a number of different ways.

Why MemPro?

MemPro can handle massive data sets. Profiles of trillions of allocations are not uncommon. MemPro is also perfect for profiling real-time applications such as games because of its minimal overhead. Because all of the processing is offline, MemPro can track thousands of allocations per second without noticeable slowdown.

Features

  • Full memory breakdown of your application
  • Multiple views of the data
  • Easily find and fix memory leaks
  • Subtract one snapshot from another
  • Rewind memory
  • Virtual memory layout visualisation
  • Visualise memory fragmentation
  • Profile applications of any size quickly and efficiently

How it works

MemPro supplies two macros: MEMPRO_TRACK_ALLOC(p, size) and MEMPRO_TRACK_FREE(p). For ease of use MemPro automatically overrides the global new and delete operators and adds these macros, but if you have your own allocation routines then you can add the macros yourself as needed. MemPro records the callstack of every allocation, and all of the data is sent over the network to MemPro.

MemPro processes the data offline. All the current live allocations are tracked. When a matching free is found the allocation is removed. MemPro also stores an entire history of all allocations and frees which allows for retrospective snapshots and rewinding of memory.

All of the symbol lookups are done by MemPro, which keeps the overhead in your application to a minimum. MemPro will read the symbol files for your application and display the callstacks.

The main way of viewing data in MemPro is to take a snapshot at a specific point in time. This shows you all of the allocations that are live at that point. You can this view the data in multiple ways, such as the calltree view and the types view.

For finding memory leaks or memory spikes, you can subtract one snapshot from another snapshot. This shows you all allocations that are in the second snapshot but not in the first.

MemPro has a powerful feature specifically for tracking down memory leaks. It can analyze the entire contents of the application's memory and find any allocations that are not referenced by any code or data. It also uses a sophisticated set of heuristics to analyze the allocation pattern of each callstack to check for possible leaks.

MemPro is particularly valuable for tracking down memory corruption bugs. MemPro can show you the entire history of all allocations and frees that happened in a specific address range. This is often sufficient information to find the cause of the corruption.

MemPro is quick to integrate, has low overhead and is ideal for profiling real-time applications such as games. With MemPro you can easily see where your memory is going, you can track down leaks and spikes in minutes and find those hard-to-track-down memory corruption bugs.

MemPro runs on Windows platforms, but can connect to and profile applications on almost any platform

MemPro particularly stands out from other C++ memory profilers for its ability to handle very large data sets

Integrate MemPro into your codebase in minutes

All of the symbol lookups are done by MemPro, which keeps the overhead in your application to a minimum