0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-27 08:41:02 +08:00
Victor Zarubkin 1b33ad788d (profiler_core) Further work with run-time enable/disable blocks;
(profiler_core) Fixed bug with memory corruption in chunk_allocator;
(profiler_core) Event tracing now gathering info about process which owns thread;
(profiler_core) Thread names are stored before other blocks now;
(profiler_core) Removed unused block types: context switch and thread sign;
(profiler_core) Added some description for API;
(profiler_gui) Context switch events now painted in different colors: red = switch to another process, coral = switch to registered thread in the same process, black = switch to kernel mode (thread id == 0).
(profiler_gui) Added popup windows with information about context-switch or block under mouse cursor;
2016-09-13 23:03:01 +03:00
2016-09-06 22:23:55 +03:00
2016-09-11 16:59:01 +03:00
2016-05-01 23:32:46 +03:00
2016-08-21 12:34:06 +03:00
2016-09-07 21:32:14 +03:00
2016-02-16 23:21:12 +03:00
2016-09-07 23:32:44 +04:00

easy_profiler LicenseBuild Status

  1. About
  2. Build
  3. Usage

About

Lightweight profiler library for c++

You can profile any function in you code. Furthermore this library provide measuring time of any block of code. Also the library can capture system's context switch. You can see the results of measuring in simple gui application which provide full statistic and render beautiful timeline.

Build

Prerequisites

For core:

  • compiler with c++11 support
  • cmake 3.0 or later

For GUI:

  • Qt 5.3.0 or later

linux

$ mkdir build
$ cd build
$ cmake ..
$ make

windows

If you use qtcreator IDE you can just open CMakeLists.txt file in root directory.

If you use Visual Studio you can generate solution by cmake command. In this case you should specify path to cmake scripts in Qt5 dir (usually in lib/cmake subdir), for example:

$ mkdir build
$ cd build
$ cmake -DCMAKE_PREFIX_PATH="C:\Qt\5.3\msvc2013_64\lib\cmake" ..

Usage

First of all you can specify path to include directory which contains include/profiler directory. For linking with ease_profiler you can specify path to library.

Example of usage.

This code snippet will generate block with function name and grouped it in Magenta group:

#include <profiler/profiler.h>

void frame(){
    EASY_FUNCTION(profiler::colors::Magenta);
    prepareRender();
    calculatePhysics();
}

To profile any block you may do this as following. You can specify these blocks also with Google material design color or just set name of block (in this case color will be OrangeA100):

#include <profiler/profiler.h>

void frame(){
    //some code
    EASY_BLOCK("Calculating summ");
    for(int i = 0; i < 10; i++){
        sum += i;
    }
    EASY_END_BLOCK;

    EASY_BLOCK("Calculating multiplication", profiler::colors::Blue50);
    for(int i = 0; i < 10; i++){
        mul *= i;
    }
    EASY_END_BLOCK;
}

Analytics

Description
Lightweight profiler library for c++
Readme MIT
Languages
C++ 96.3%
CMake 1.1%
SCSS 0.9%
CSS 0.8%
C 0.8%
Other 0.1%