MicroProfile
github.com
What it is
MicroProfile is a free, embeddable C++ profiler supplied in a few files for adding profiling to a project. Developers mark code with timer macros and include microprofile.cpp. Its live view is opened in Chrome by visiting the profiler host on port 1338, and it can capture the last 30 frames by default. Captures are self-contained webpages that can be saved and shared; profile data can also be written to HTML or CSV. GPU timers support OpenGL, D3D11, D3D12, and Vulkan. Counters appear in live and capture views, and timeline markers cover longer-running unique timers. A detailed view can compare two captures, but not captures made with earlier versions. Experimental dynamic instrumentation supports Intel x86-64 on Windows, macOS, and Linux, with MICROPROFILE_DYNAMIC_INSTRUMENT_ENABLE and distorm required; Linux builds also need -rdynamic. Default per-thread profiling buffers allocate 2 MB, and GPU buffers default to 128 KB each. The project is MIT-licensed and lists Windows, macOS, Linux, and unspecified console support.
Spec sheet
- Purpose
- MicroProfile is an embeddable profiler written in C++ and provided in a few files.Read 4 Oct 2026 · github.com
- License
- The repository’s license is MIT and grants permission to use, copy, modify, distribute, sublicense, and sell copies subject to its conditions.Read 4 Oct 2026 · github.com
- Maker
- The GitHub profile identifies the maintainer as Jonas Meyer and lists Denmark.Read 4 Oct 2026 · github.com
- Capture comparison
- Two captures can be compared in detailed view, but captures from earlier versions are incompatible with this feature.Read 4 Oct 2026 · github.com
- 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.Read 4 Oct 2026 · github.com
- Counters and timeline
- It supports counters shown in live and capture views, plus timeline markers for longer-running unique timers.Read 4 Oct 2026 · github.com
- Dependencies
- The project lists miniz for compressed captures, distorm for dynamic instrumentation, stb_sprintf, raw_pdb, and Dear ImGui among its dependencies.Read 4 Oct 2026 · github.com
- Dynamic instrumentation
- Dynamic instrumentation is supported on Intel x86-64 on Windows, macOS, and Linux, and the project describes it as experimental.Read 4 Oct 2026 · github.com
- Dynamic instrumentation requirements
- Dynamic instrumentation requires MICROPROFILE_DYNAMIC_INSTRUMENT_ENABLE and linking distorm; Linux builds also need -rdynamic.Read 4 Oct 2026 · github.com
- GPU timing
- GPU timers are available for OpenGL, D3D11, D3D12, and Vulkan.Read 4 Oct 2026 · github.com
- Instrumentation
- Code can be instrumented with timer macros, and the implementation file microprofile.cpp must be included in the project.Read 4 Oct 2026 · github.com
- 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.Read 4 Oct 2026 · github.com
- Resource use
- The default per-thread profiling buffer allocation is 2 MB, with GPU buffers defaulting to 128 KB each.Read 4 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Free and MIT-licensed.
- Captures can be saved and shared as webpages.
- GPU timers cover four listed graphics APIs.
- Exports profile data to HTML or CSV.
Limits
- Dynamic instrumentation is experimental.
- Earlier-version captures cannot be compared in detailed view.
- Dynamic instrumentation has additional build requirements.
Who it suits
MicroProfile suits C++ developers who want to add CPU and GPU profiling to a project and inspect frame captures. It is available for Windows, macOS, and Linux, with console support mentioned but not specified.
Verdict
MicroProfile offers an embeddable workflow with live viewing, capture export, and GPU timing. Developers considering dynamic instrumentation should account for its experimental status and platform-specific build requirements.
Where Specifiction places it
- Game Profiling Software#14 of 257.8