Why MTuner?

With MTuner you gain an ability to identify various memory usage and allocation patterns that would otherwise be difficult to find. With a number of visualization features and built-in filtering functionality, no allocation is missed or difficult to isolate. MTuner gives you unique insight in memory behavior of your software and allows you to see the big picture.

Highlight features

Below you can find some of the features that make MTuner stand out from the crowd. These are just some highlights but there are plenty of features to discover!

  • High performance
    Profile your application with minimal impact on run-time performance. MTuner can handle large number of memory operations per second with linear performance scaling. We understand the importance of being able to run your application as usual during the profiling and optimization stages.

  • Memory timeline graph
    See the evolution in memory usage over time with ability to zoom, pan and select intervals of time. Visualize the memory usage peaks and quickly find out what is causing them. Memory timeline graph is more than just a visual representation of your memory – it’s also a powerful navigation interface!

  • Filtered views
    MTuner comes with powerful filtering features allowing you to isolate memory operations that match one or more of desired criterias. Filtering brings together different visualisations as they may represent different filtering rules as well. For example, if you wondered how many surviving allocations happen during loading phase of your application that are no more than 256 bytes in size and where they come from – now you can find that out very quickly!

  • Non intrusive
    MTuner performs no internal allocations during profiling. Not only this doesn’t pollute your profiles but also minimizes the impact on your application behavior. MTuner can capture allocations coming from any point of execution, even if it’s happening before main function. This means you can track CRT initialization phase memory and all the global variables you may have.

  • Instrumentation API
    If you are using custom made memory managers you can still use MTuner to track fine grained memory operations. With MTuner instrumentation API you can decide what qualifies as an allocation in your software and fully customize what MTuner records. With memory tags you can group memory operations based on categories which are stored in hierarchies. Tags provide a high level view of memory usage that can help you break down what different areas of code are using. For more information read the section on Tag trees. API allows adding timed events that show up on the timeline graph – now you can mark, for example, beginning and end of your loading phase to help you identify memory operations with full precision.

  • Continuous integration
    Full command line support in MTuner enables you to use it in your continuous integration solutions. You can track changes in memory usage in your nightly builds or even after each check-in. Reports are generated either in text or XML format with latter allowing XSL transformation for generating any report types you may need, be it HTML pages for you intranet server or other forms for your teams (QA, engineers, management, etc.).