AlgoGauge depends on two git submodules:
external/trade-ngin– the trading engine library being benchmarkedtools/FlameGraph– Brendan Gregg's flamegraph generation scripts
Clone both at once:
git clone --recurse-submodules https://github.com/AlgoGators/algogauge.git
cd algogaugeIf you already cloned without --recurse-submodules, initialize them now:
git submodule update --init --recursiveuv syncThis creates a virtual environment and installs all packages listed in pyproject.toml (Dash, Pandas, Plotly, etc.) using the exact versions pinned in uv.lock.
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallelThe compiled binaries are placed in build/benchmarks/:
| Binary | Strategy |
|---|---|
build/benchmarks/base_strategy_benchmarks |
trade_ngin::BaseStrategy |
build/benchmarks/trend_following_benchmarks |
trade_ngin::TrendFollowingStrategy |
Tip: Pass
-DCMAKE_BUILD_TYPE=RelWithDebInfoinstead ofReleaseto keep debug symbols while still benefiting from optimizations. This produces richer flamegraphs without changing benchmark results.