-
Viiite is now able to work on complete benchmark suites (located in './benchmarks' and looking for '**/*.rb' files by default). Subcommands automatically resolve benchmark names passed as arguments. For example:
./benchmarks/ bench_iteration.rb -> viiite run bench_iteration Array/ bench_sort.rb -> viiite run Array/bench_sort
-
Default behavior remains compatible with 0.1.0:
- 'run', 'plot' and 'report' accept a benchmark file as first argument and bypass the benchmark suite in this case.
- when invoked without any argument, 'plot' and 'report' assume a .rash stream on standard input
-
For each benchmark, the results of the last run are saved in a cache. 'plot' and 'report' will use data in the cache if available or automatically run the benchmark.
-
The default behavior may be controlled through the following main options: --suite=[FOLDER], --pattern=[GLOB], --[no-]cache=[FOLDER], --append, --write. Example:
rvm exec viiite --append run --runs=10
-
'viiite run'
- Added a --runs=NB option to run the same benchmark NB times. This allows keeping benchmarks clean; no NB.times{ ... } or range_over(1..NB, :run) for obtaining a representative sample are needed in the benchmark itself.
- The previous option comes hand-in-hand with --run-key=KEY that allows specifying the attribute name for the run number (defaults to :run)
- Without argument, runs all the benchmarks of the suite
-
'viiite plot'
- Added --highcharts options; outputs a json array containing one hash for each chart, to be used as options Highcharts.Chart(...) (cfr. highcharts.js)
- Added -d option, to debug; outputs the query result that would be used by the concrete --xxx formatter.
-
'viiite report'
- output has been improved: user, system, total and real time are explicitely shown (different attributes/columns instead of one tms measure).
- added a '--ff=FORMAT' option for float format of the different measures (defaults to %.6f)
- added a '--stddev=[MEASURE]' option for displaying standard deviation over all regrouped runs (on a specific measure defaulting to tms.total)
- The garbage collector is started before running report{ ... } blocks
- Viiite does not depend on benchmark (stdlib) anymore
- Improved Viiite.which_ruby; it should always output something like '#{rubyname} #{version}#{patchlevel}' from now on
- Fixed a bug when using 'viiite report --regroup=x,y,z --hierarchy' with more than 2 regrouping attributes.
-
Enhancements
- Birthday!