Our great sponsors
-
timemory
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
W.r.t. to performing all this analysis on the code at a high-level and a low-level, checkout the performance analysis toolkit I've been working for the last year and half or so: timemory -- it has a high-level interface and some pre-built tools (such as the aforementioned timem) but it also exposes C++ template interface that's designed so that you can trivially bundle together different measurements and/or create custom measurement types and then use them with as little overhead as you desire, e.g. lightweight_tuple foo{}; foo.start(); ...; foo.stop() will create wall-clock and cpu-clock timers on the stack and never touch any global memory, component_tuple, vtune_frame> bar{ "mylabel"}; will report a wall-clock time, total-cycles, and the L1 cache misses in JSON and text files at the end, and create a "mylabel" frame in VTune when it is connected.
Related posts
- Best way to track cpu and i/o time?
- Proposal Idea: Make `= auto` like `= default` except that it is an error if the member cannot be generated
- jrmadsen/compile-time-perf -- High-level compilation overhead metrics
- Is there a way to get the type from type_index?
- CMake install schema for single- and multi-config generators