Lightweight cross-platform profiler library for C++. You can profile any function in your code. Furthermore, this library provides measuring time of any block of code. For example, information for 12 millions of blocks is using less than 300Mb of memory. Working profiler slows your application execution for only 1-2%. The average overhead per block is about 15ns/block (tested on Intel Core i7-5930K 3.5GHz, Win7). Disabled profiler will not affect your application execution in any way. You can leave it in your Release build and enable it at run-time at any moment during the application launch to see what is happening at the moment. Also, the library can capture the system's context switch events between threads. Context switch information includes duration, target thread ID, thread owner process ID, and thread owner process name. You can see the results of measuring in a simple GUI application which provides full statistics and renders a beautiful time-line.
Features
- Lightweight cross-platform profiler library for c++
- Documentation available
- Extremely low overhead
- Low additional memory usage
- Capture thread context-switch events
- Store user variables (both single values and arrays)
- GUI could be connected to an application which is already profiling (so you can profile initialization of your application)
- Monitor main thread fps at real-time in GUI even if profiling is disabled or draw your own HUD/fps-plot directly in your application using data provided by profiler