diff options
| author | bors <bors@rust-lang.org> | 2015-07-09 05:15:48 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-07-09 05:15:48 +0000 |
| commit | 66b9277b1364b130aed260ac219c1fe58eb02df2 (patch) | |
| tree | 8afa78679850bc0c9128356bd27b77787be987e3 /src/rustllvm/RustWrapper.cpp | |
| parent | afe25a2d6aaa308cce861fab50014f6a9f57a269 (diff) | |
| parent | 9f4d5b4be10ce9683569a0bd55f555d30f70b5a5 (diff) | |
| download | rust-66b9277b1364b130aed260ac219c1fe58eb02df2.tar.gz rust-66b9277b1364b130aed260ac219c1fe58eb02df2.zip | |
Auto merge of #26884 - dotdash:fast, r=alexcrichton
Exploiting the fact that getting the length of the slices is known, we can use a counted loop instead of iterators, which means that we only need a single counter, instead of having to increment and check one pointer for each iterator. Benchmarks comparing vectors with 100,000 elements: Before: ``` running 8 tests test eq1_u8 ... bench: 66,757 ns/iter (+/- 113) test eq2_u16 ... bench: 111,267 ns/iter (+/- 149) test eq3_u32 ... bench: 126,282 ns/iter (+/- 111) test eq4_u64 ... bench: 126,418 ns/iter (+/- 155) test ne1_u8 ... bench: 88,990 ns/iter (+/- 161) test ne2_u16 ... bench: 89,126 ns/iter (+/- 265) test ne3_u32 ... bench: 96,901 ns/iter (+/- 92) test ne4_u64 ... bench: 96,750 ns/iter (+/- 137) ``` After: ``` running 8 tests test eq1_u8 ... bench: 46,413 ns/iter (+/- 521) test eq2_u16 ... bench: 46,500 ns/iter (+/- 74) test eq3_u32 ... bench: 50,059 ns/iter (+/- 92) test eq4_u64 ... bench: 54,001 ns/iter (+/- 92) test ne1_u8 ... bench: 47,595 ns/iter (+/- 53) test ne2_u16 ... bench: 47,521 ns/iter (+/- 59) test ne3_u32 ... bench: 44,889 ns/iter (+/- 74) test ne4_u64 ... bench: 47,775 ns/iter (+/- 68) ```
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
