installation
- copy the
diol.handdiol.hppheaders to your include directory. - compile the
diolstatic lib withcargo build --releaseand link.target/release/libdiol_cbind.ato your program.
example
using namespace diol;
void
void
void
void
int
output
╭────────────────┬──────┬──────────┬───────────┬───────────┬───────────┬───────────╮
│ benchmark │ args │ f64/s │ fastest │ median │ mean │ stddev │
├────────────────┼──────┼──────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ 1 │ 4.869e8 │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 141.00 ps │
│ bar │ 1 │ 4.868e8 │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 107.00 ps │
├────────────────┼──────┼──────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ 2 │ 9.743e8 │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 102.00 ps │
│ bar │ 2 │ 9.741e8 │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 100.00 ps │
├────────────────┼──────┼──────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ 4 │ 1.455e9 │ 2.73 ns │ 2.73 ns │ 2.76 ns │ 266.00 ps │
│ bar │ 4 │ 1.349e9 │ 2.73 ns │ 2.96 ns │ 2.97 ns │ 248.00 ps │
├────────────────┼──────┼──────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ 512 │ 1.038e10 │ 49.12 ns │ 49.13 ns │ 49.41 ns │ 3.10 ns │
│ bar │ 512 │ 1.039e10 │ 49.12 ns │ 49.13 ns │ 49.37 ns │ 2.87 ns │
╰────────────────┴──────┴──────────┴───────────┴───────────┴───────────┴───────────╯
╭────────────────┬────────────┬───────────┬───────────┬───────────┬───────────╮
│ benchmark │ args │ fastest │ median │ mean │ stddev │
├────────────────┼────────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ [1, 2] │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 154.00 ps │
│ bar │ [1, 2] │ 2.05 ns │ 2.05 ns │ 2.06 ns │ 94.00 ps │
├────────────────┼────────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ [2, 4] │ 2.95 ns │ 2.96 ns │ 2.97 ns │ 171.00 ps │
│ bar │ [2, 4] │ 2.96 ns │ 3.41 ns │ 3.30 ns │ 270.00 ps │
├────────────────┼────────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ [4, 6] │ 2.96 ns │ 2.96 ns │ 2.99 ns │ 246.00 ps │
│ bar │ [4, 6] │ 3.41 ns │ 3.41 ns │ 3.47 ns │ 281.00 ps │
├────────────────┼────────────┼───────────┼───────────┼───────────┼───────────┤
│ foo │ [512, 768] │ 72.78 ns │ 73.23 ns │ 76.05 ns │ 6.65 ns │
│ bar │ [512, 768] │ 73.66 ns │ 81.55 ns │ 83.48 ns │ 8.28 ns │
╰────────────────┴────────────┴───────────┴───────────┴───────────┴───────────╯
screenshot
visualization can be done using estra.