On Monday, 30 March 2015 at 23:29:40 UTC, Jonathan wrote:
I have no idea if this has been discussed yet, but I was
thinking it would be neat to have benchmark blocks that only
run when specified, like how unittest works.
Code:
benchmarks
{
import std.conv : to;
int a;
void f() {auto b = to!string(a);}
auto r = benchmark!(f)(10_000);
auto f0Result = to!Duration(r[0]);
writeln(f0Result)
}
Example:
rdmd -benchmarks -main myapp.d
Alternatively, the writeln could be replaced with some kind of
standard benchmark output utility (similar to the idea of
assert when used for unit tests).
Thoughts?
Thinking that there is "unittest" already, and other people might
want other code parts, this turns into labelled code parts.
code( kind: benchmark ){
}
code( kind: unittest ){
}
code( kind: release ){
}
etc.