All Projects → milostosic → Mtuner

milostosic / Mtuner

Licence: bsd-2-clause
MTuner is a C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms

Programming Languages

C++
36643 projects - #6 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to Mtuner

Mthawkeye
Profiling / Debugging assist tools for iOS. (Memory Leak, OOM, ANR, Hard Stalling, Network, OpenGL, Time Profile ...)
Stars: ✭ 1,119 (-44.25%)
Mutual labels:  tool, performance-analysis, profiling
profiling
Non-discriminatory profiling of Ruby code leveraging the ruby-prof gem
Stars: ✭ 12 (-99.4%)
Mutual labels:  memory, optimization, profiling
Scalene
Scalene: a high-performance, high-precision CPU, GPU, and memory profiler for Python
Stars: ✭ 4,819 (+140.11%)
Mutual labels:  performance-analysis, profiling
Detoxinstruments
Detox Instruments is a performance–analysis and testing framework, designed to help developers profile their mobile apps in order to better understand and optimize their app's behavior and performance.
Stars: ✭ 513 (-74.44%)
Mutual labels:  memory, performance-analysis
Likwid
Performance monitoring and benchmarking suite
Stars: ✭ 957 (-52.32%)
Mutual labels:  performance-analysis, profiling
audria
audria - A Utility for Detailed Ressource Inspection of Applications
Stars: ✭ 35 (-98.26%)
Mutual labels:  memory, profiling
bytehound
A memory profiler for Linux.
Stars: ✭ 2,639 (+31.49%)
Mutual labels:  memory-profiler, profiling
Py Spy
Sampling profiler for Python programs
Stars: ✭ 7,709 (+284.11%)
Mutual labels:  performance-analysis, profiling
Superstring
A fast and memory-optimized string library for C++
Stars: ✭ 252 (-87.44%)
Mutual labels:  memory, optimization
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (-95.76%)
Mutual labels:  optimization, profiling
Jplusone
Tool for automatic detection and asserting "N+1 SELECT problem" occurences in JPA based Spring Boot Java applications and finding origin of JPA issued SQL statements in general
Stars: ✭ 91 (-95.47%)
Mutual labels:  optimization, performance-analysis
nodejs
Node.js in-process collectors for Instana
Stars: ✭ 66 (-96.71%)
Mutual labels:  memory, profiling
Pg stat kcache
Gather statistics about physical disk access and CPU consumption done by backends.
Stars: ✭ 106 (-94.72%)
Mutual labels:  optimization, performance-analysis
Diago
Diago is a visualization tool for CPU profiles and heap snapshots generated with `pprof`.
Stars: ✭ 351 (-82.51%)
Mutual labels:  tool, profiling
doc
QuickPerf documentation: https://github.com/quick-perf/doc/wiki/QuickPerf
Stars: ✭ 22 (-98.9%)
Mutual labels:  performance-analysis, profiling
Java Debug Tool
Java dynamic debug tool
Stars: ✭ 26 (-98.7%)
Mutual labels:  tool, profiling
Coz
Coz: Causal Profiling
Stars: ✭ 2,719 (+35.48%)
Mutual labels:  optimization, performance-analysis
Xprof
A visual tracer and profiler for Erlang and Elixir.
Stars: ✭ 246 (-87.74%)
Mutual labels:  tool, profiling
Observer cli
Visualize Erlang/Elixir Nodes On The Command Line
Stars: ✭ 1,058 (-47.28%)
Mutual labels:  memory, profiling
Go Perfbook
Thoughts on Go performance optimization
Stars: ✭ 9,597 (+378.18%)
Mutual labels:  optimization, performance-analysis

MTuner logo

Build Status Build status License

MTuner is a C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms.

MTuner utilizes a novel approach to memory profiling and analysis, keeping entire time-based history of memory operations. This gives an unique insight in memory related behavior of your software by making queries over the entire data set.

While MTuner was created for profiling C/C++ applications, it is possible to profile memory for programs written in other languages as long as there is corresponding debug symbol information. Users can convert DMD CodeView/DWARF debug symbols to PDB format using cv2pdb.

MTuner screenshot

Source Code

You can get the latest source code by cloning it from github:

  git clone https://github.com/milostosic/MTuner.git 

Download

Binaries can be downloaded from releases page

Documentation

MTuner documentation can be found here.

Dependencies

MTuner uses Qt framework for user interface.

Dependencies can be obtained by cloning the following repositories:

git clone https://github.com/milostosic/build.git
git clone https://github.com/milostosic/rbase.git
git clone https://github.com/milostosic/rdebug.git
git clone https://github.com/milostosic/rmem.git
git clone https://github.com/milostosic/rqt.git
git clone https://github.com/milostosic/MTunerCmd.git
git clone https://github.com/milostosic/MTunerDLL.git
git clone https://github.com/milostosic/MTunerInject.git

DIA (Debug Interface Access) SDK - Windows only

git clone https://github.com/milostosic/DIA.git 

Build

MTuner build system is based on GENie and build in order to dramatically simplify managing build configurations and dependencies.

After cloning the repository and dependencies, here are the steps to build MTuner.

MinGW

$ cd MTuner/genie
$ genie --gcc=mingw-gcc gmake
$ cd ../../.build/windows/mingw-gcc/MTuner/projects/
$ make

MINGW environment variable must be set and point to the MinGW installation directory.
Tested with TDM64 MinGW using OpenMP package

Visual Studio

> cd MTuner/genie
> genie vs2015

Solution will be located here: {Clone root}/.build/windows/vs2015/projects/MTuner/MTuner.sln

NB: building Qt based projects with build requires additional dependencies:

Lua
Lua lfs module

Environment variables are used to locate Qt installation, example:

set QTDIR_VS2017_x86=C:\<some_path>\Qt\5.13.0\msvc2017_64 *
set QTDIR_VS2017_x64=C:\<some_path>\Qt\5.13.0\msvc2017_64

Note that Qt deprecated 32bit builds, hence both variables point to same location.

Latest release made with: Visual Studio 2017 Community edition, Qt 5.13.0 and Lua 5.1.4

Author

The author of MTuner is Milos Tosic

License (BSD 2-clause)

Copyright (c) 2019 Milos Tosic. All rights reserved.

https://github.com/milostosic/MTuner

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].