Skip to content

Latest commit

 

History

History
140 lines (85 loc) · 4.65 KB

CHANGELOG.md

File metadata and controls

140 lines (85 loc) · 4.65 KB

Changelog

All changes in this project will be noted in this file.

Note on semver compatibility

Due to initial problems with local cargo configurations (and some automated scripts), some versions were tagged incorrectly. However, all versions strictly follow semver since 0.3.0. For versions prior to 0.3.0, please refer to the small quote box which will indicate if the release introduces any breaking changes or not. I am very sorry for any inconvenience that this may have caused.

Version 4.0.1

No breaking changes

This releases fixes several misleading docs and improves the examples.

Version 4.0.0

This release introduces breaking changes!

The run_benchmark() function now enables the use of an usize within the closure/function for enabling access to data arrays which are extensively used while benchmarking. See Advanced benchmarking

Upgrading existing code

If you previously used run_benchmark() in the following way: run_benchmark(100, || {}) , then you'll have to change it to: run_benchmark(100, |_| {}) .

Version 3.0.3

No breaking changes in this release

No major changes except for changing the run_benchmark() function's function argument's type to impl Fn()

Version 3.0.2

No breaking changes in this release

Minor improvements

Version 3.0.1 [2020-06-15]

No breaking changes in this release

Fixes issue #2 where the average was calculated incorrectly.

Version 3.0.0 [2020-05-21]

This release introduces breaking changes!

  • This release splits timer objects into two kinds: SimpleTimer and ComplexTimer .

SimpleTimers keep things simple: use .start() and .stop() to benchmark

different operations, however you have to use the results of one benchmark immediately. This is ideal when you're benchmarking an operation and then printing or storing the results right away. However, if you want a timername/timer way of benchmarking, then ComplexTimer is for you.

  • Also, the run_through() feature has now been deprecated and instead, you can use the function run_benchmark() which does the same thing. The function was moved out since it didn't rely on a specific instance of a SimpleTimer (or previously DevTime ) object.

Upgrading existing code

  • For any code that used DevTime::new() in versions prior to 3.0.0 , simply change it to DevTime::new_simple() .
  • For code that used the run_through feature introduced in 2.0.0 can continue to do so, but I recommend

upgrading to the run_benchmark function like shown below:

use devtimer::run_benchmark;
fn main() {
    let result_of_sleep = run_benchmark(10, || {
        // Fake a slow operation
        std::thread::sleep(std::time::Duration::from_secs(1));
    });
    result_of_sleep.print_stats();
}

Version 2.0.0 [2020-05-09]

No breaking changes in this release

This release adds the new run_through() feature. This new feature completes the gap that was left in building the complete benchmarking suite for Rust. A single benchmark doesn't say much, so it is far better to run the benchmark over and over again to see how it perform on average. The run_through() function does exactly that. It accepts the number of iterations as an usize and the benchmark code, either as a closure ( || {} ) or a function directly. So now that you've got a complete benchmarking suite, why not benchmark some code?

Version 1.1.2 [2019-11-27]

No breaking changes in this release

Fixed minor issues with the documentation which were slightly misleading

Version 1.1.1 [2019-11-17]

This release introduces breaking changes!

Take a reference to std::time::duration instead of taking it's ownership.

Upgrading exisiting code

If you had done something like timer.start_after(std::time::Duration::from_secs(2)) , all you need to do is add a borrow like shown below:

timer.start_after(&std::time::Duration::from_secs(2))

Reason for change

If a common variable is used by the developer, i.e it is declared as follows:

let dur = std::time::Duration::from_secs(2);

Then giving ownership to start_after() will be a problem. That is why, this design change was made. Hence, from now on, all you do is:

let mut timer = DevTime::new();
timer.start_after(&dur);

Version 1.1.0 [2019-11-16]

No breaking changes in this release

  • This version introduces a new function start_after() . This can be used to delay the starting of timer operations

Version 1.0.1 [2019-11-11]

No breaking changes in this release

  • This fixed some issues with the documentation

Version 1.0.0 [2019-11-10]

  • This is the initial release of the crate