diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2015-04-08 14:25:22 +1000 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2015-04-10 14:42:17 +1000 |
| commit | c2258d6d042353bfa6daad6008bcd3c0af3f13de (patch) | |
| tree | fcba6d8badc0d442aea89d98f8b3470b26df2b60 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | d9146bf8ba0bdf98a46c4656899e54802e96ac0c (diff) | |
| download | rust-c2258d6d042353bfa6daad6008bcd3c0af3f13de.tar.gz rust-c2258d6d042353bfa6daad6008bcd3c0af3f13de.zip | |
Optimise Iterator::{max, max_by, min, min_by}.
The main change in this patch is removing the use of `Option` inside the
inner loops of those functions to avoid comparisons where one branch
will only trigger on the first pass through the loop.
The included benchmarks go from:
test bench_max ... bench: 372 ns/iter (+/- 118)
test bench_max_by ... bench: 428 ns/iter (+/- 33)
test bench_max_by2 ... bench: 7128 ns/iter (+/- 326)
to:
test bench_max ... bench: 317 ns/iter (+/- 64)
test bench_max_by ... bench: 356 ns/iter (+/- 270)
test bench_max_by2 ... bench: 1387 ns/iter (+/- 183)
Problem noticed in http://www.reddit.com/r/rust/comments/31syce/using_iterators_to_find_the_index_of_the_min_or/
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
