MCPcopy Index your code
hub / github.com/anp/lolbench

github.com/anp/lolbench @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
2,435 symbols 3,548 edges 1,471 files 77 documented · 3% updated 3y ago★ 10350 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

lolbench

CI Status: CircleCI

This project is an effort to reproducibly benchmark "in the wild" Rust code against newer compiler versions to detect performance regressions. The data is currently published to https://lolbench.rs.

Adding Benchmarks

Want to contribute and are looking for the list of benchmarks we'd like help adding?

Getting Started

Dependencies

  • rustup
  • clang (Linux only)

Building & Running

$ git submodule update --init
$ cargo test-core

Useful cargo subcommand aliases

  • cargo build-website runs the website generator using the provided data directory. Pass the --help flag to see what's required.
  • cargo fmt-core formats only those crates which should be rustfmt'd -- notably our fork of criterion isn't rustfmt-friendly right now. Useful for cargo watch -x fmt-core.
  • cargo test-core runs the tests for every non-benchmark crate except for criterion. At writing, that's lolbench, lolbench_support, lolbench_extractor, and marky_mark.
  • cargo new-bench-crate runs a lolbench command to create a new benchmark crate in the benches directory.
  • cargo build-all [--release] builds a binary for every benchmark function. caution: this will generate dozens of gigabytes of data in your target directory.
  • cargo test-all runs the test for every benchmark function, which consists of warming it up and running through a couple of iterations. caution: this will generate dozens of gigabytes of data in your target directory.

License

lolbench is distributed under the terms of both the MIT license and the Apache License (Version 2.0). Some included benchmarks have their own separate licenses, see those directories and their Cargo.toml metadata for details.

Extension points exported contracts — how you extend this code

WadReadFrom (Interface)
(no doc) [23 implementers]
benches/doom_9e197d7/src/wad/read.rs
StorageKey (Interface)
A trait which allows a struct to behave as the key in a very simple persistent K/V filesystem store. [3 implementers]
src/storage.rs
Material (Interface)
(no doc) [3 implementers]
benches/raytrace_8de9020/src/materials.rs
Joiner (Interface)
(no doc) [2 implementers]
benches/rayon_1_0_0/src/quicksort/mod.rs
Runner (Interface)
(no doc) [1 implementers]
benches/brotli_1_1_3/src/lib.rs
CriterionExt (Interface)
(no doc) [1 implementers]
support/src/lib.rs
NeededBy (Interface)
(no doc) [5 implementers]
benches/doom_9e197d7/src/gfx/error.rs
Model (Interface)
(no doc) [2 implementers]
benches/raytrace_8de9020/src/model.rs

Core symbols most depended-on inside this repo

arg
called by 156
src/cpu_shield.rs
map
called by 94
benches/doom_9e197d7/src/shims/glium/src/lib.rs
iter
called by 77
benches/brotli_1_1_3/src/lib.rs
wad_read
called by 67
benches/doom_9e197d7/src/wad/read.rs
len
called by 59
benches/rayon_1_0_0/src/life/mod.rs
len
called by 45
benches/doom_9e197d7/src/math/vector.rs
push
called by 42
benches/doom_9e197d7/src/game/lights.rs
push
called by 35
benches/doom_9e197d7/src/gfx/vertex.rs

Shape

Function 1,590
Method 546
Class 232
Enum 45
Interface 22

Languages

Rust100%
TypeScript1%

Modules by API surface

benches/doom_9e197d7/src/shims/glium/src/lib.rs53 symbols
benches/doom_9e197d7/src/wad/visitor.rs51 symbols
benches/doom_9e197d7/src/shims/sdl2/src/lib.rs47 symbols
benches/doom_9e197d7/src/gfx/scene.rs32 symbols
benches/brotli_1_1_3/src/lib.rs31 symbols
src/storage.rs29 symbols
benches/doom_9e197d7/src/math/vector.rs29 symbols
benches/doom_9e197d7/src/wad/tex.rs26 symbols
benches/rayon_1_0_0/src/matmul/mod.rs25 symbols
benches/doom_9e197d7/src/game/world.rs24 symbols
benches/raytrace_8de9020/src/vec.rs22 symbols
benches/doom_9e197d7/src/wad/types.rs22 symbols

For agents

$ claude mcp add lolbench \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact