- Home
- Game Profiling Software
- MicroProfile
MicroProfile
What it is
MicroProfile is a free, MIT-licensed profiler written in C++ and supplied in a few files for embedding in projects. Developers add timer macros and include microprofile.cpp. Its live view opens in Chrome through the profiler host on port 1338 and captures the last 30 frames by default. Captures are self-contained webpages that can be saved and shared, while profile data can also be dumped to HTML or CSV. GPU timing supports OpenGL, D3D11, D3D12, and Vulkan. Counters appear in live and capture views, and timeline markers identify longer-running unique timers. A detailed view compares two captures, but captures from earlier versions cannot be compared this way. Experimental dynamic instrumentation works on Intel x86-64 for Windows, macOS, and Linux, with required build settings and dependencies. Default profiling buffers allocate 2 MB per thread and 128 KB per GPU buffer. The project lists Linux, macOS, Windows, and unspecified console support.
For and against
For
- Embeddable C++ implementation
- CPU and GPU profiling
- Exports self-contained HTML captures
- Supports OpenGL, D3D11, D3D12, Vulkan
- Counters and timeline markers
Against
- Default capture keeps 30 frames
- Older captures cannot be compared
- Dynamic instrumentation is experimental
- Additional build dependencies are required
The verdict
MicroProfile provides compact embedded profiling with browser viewing, exports, and several GPU APIs. Version compatibility and setup requirements matter, especially for dynamic instrumentation and capture comparison.
Who it suits
It suits C++ developers who need embeddable CPU or GPU profiling, frame analysis, and shareable captures. It can also help teams comparing current captures or investigating timeline behavior.
Plans and prices
MicroProfile
Embeddable C++ profiler · MIT licensed
Read 4 Oct 2026 · github.com
On the record
- Capture comparison
- Two captures can be compared in detailed view, but captures from earlier versions are incompatible with this feature.github.com · read 4 Oct 2026
- Capture output
- Captures are self-contained webpages that can be saved and shared, and profile data can also be dumped to HTML or CSV files.github.com · read 4 Oct 2026
- Counters and timeline
- It supports counters shown in live and capture views, plus timeline markers for longer-running unique timers.github.com · read 4 Oct 2026
- Dependencies
- The project lists miniz for compressed captures, distorm for dynamic instrumentation, stb_sprintf, raw_pdb, and Dear ImGui among its dependencies.github.com · read 4 Oct 2026
- Dynamic instrumentation
- Dynamic instrumentation is supported on Intel x86-64 on Windows, macOS, and Linux, and the project describes it as experimental.github.com · read 4 Oct 2026
- Dynamic instrumentation requirements
- Dynamic instrumentation requires MICROPROFILE_DYNAMIC_INSTRUMENT_ENABLE and linking distorm; Linux builds also need -rdynamic.github.com · read 4 Oct 2026
- GPU timing
- GPU timers are available for OpenGL, D3D11, D3D12, and Vulkan.github.com · read 4 Oct 2026
- Instrumentation
- Code can be instrumented with timer macros, and the implementation file microprofile.cpp must be included in the project.github.com · read 4 Oct 2026
- License
- The repository’s license is MIT and grants permission to use, copy, modify, distribute, sublicense, and sell copies subject to its conditions.github.com · read 4 Oct 2026
- Live view
- The live view runs by opening the profiler’s host on port 1338 in Chrome and can capture the last 30 frames by default.github.com · read 4 Oct 2026
- Maker
- The GitHub profile identifies the maintainer as Jonas Meyer and lists Denmark.github.com · read 4 Oct 2026
- Purpose
- MicroProfile is an embeddable profiler written in C++ and provided in a few files.github.com · read 4 Oct 2026
- Resource use
- The default per-thread profiling buffer allocation is 2 MB, with GPU buffers defaulting to 128 KB each.github.com · read 4 Oct 2026