Skip to content

Latest commit

 

History

History
75 lines (53 loc) · 2.75 KB

CHANGELOG.md

File metadata and controls

75 lines (53 loc) · 2.75 KB

0.2.0

Awesome new features

  • 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:

    Run all benchmarks on all rubies, 10 times each, appending all results

    in cache

    rvm exec viiite --append run --runs=10

Enhancements to individual commands

  • '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)

Other improvements

  • 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

Bug fixes

  • Fixed a bug when using 'viiite report --regroup=x,y,z --hierarchy' with more than 2 regrouping attributes.

0.1.0 / 2011-08-20

  • Enhancements

    • Birthday!