ref: 3df92bd8dd256de9b90fd12a4d63d8bf458f1b83
dir: /bench.h/
typedef struct BItem BItem; typedef struct BResult BResult; typedef struct B B; typedef void (*BFn)(B* b); // single benchmark function struct BItem { char *name; BFn fn; }; // result of benchmarking struct BResult { int N; vlong ns; uvlong cycles; }; // type passed to bench functions struct B { int N; vlong start; /* start ns */ vlong ns; /* duration */ uvlong scycles; /* start cycles */ uvlong ecycles; /* end cycles */ uvlong bcycles; /* best cycles */ BItem item; }; // public api void benchinit(void); void bench(char *name, BFn); void benchitems(BItem[], int);