]> git.lizzy.rs Git - rust.git/commit
auto merge of #8121 : thestinger/rust/offset, r=alexcrichton
authorbors <bors@rust-lang.org>
Tue, 30 Jul 2013 14:01:19 +0000 (07:01 -0700)
committerbors <bors@rust-lang.org>
Tue, 30 Jul 2013 14:01:19 +0000 (07:01 -0700)
commit576f395ddfe3a47859df0419a0366abf7a8c185b
tree620ffdfbb26848c323b47fb61b00bd58ea745b94
parent7fc8c14c1b0f95532ce5a5d795c4283042806cb5
parentef870d37a58df136b18f1440f45d4f0102c55c1a
auto merge of #8121 : thestinger/rust/offset, r=alexcrichton

Closes #8118, #7136

~~~rust
extern mod extra;

use std::vec;
use std::ptr;

fn bench_from_elem(b: &mut extra::test::BenchHarness) {
    do b.iter {
        let v: ~[u8] = vec::from_elem(1024, 0u8);
    }
}

fn bench_set_memory(b: &mut extra::test::BenchHarness) {
    do b.iter {
        let mut v: ~[u8] = vec::with_capacity(1024);
        unsafe {
            let vp = vec::raw::to_mut_ptr(v);
            ptr::set_memory(vp, 0, 1024);
            vec::raw::set_len(&mut v, 1024);
        }
    }
}

fn bench_vec_repeat(b: &mut extra::test::BenchHarness) {
    do b.iter {
        let v: ~[u8] = ~[0u8, ..1024];
    }
}
~~~

Before:

    test bench_from_elem ... bench: 415 ns/iter (+/- 17)
    test bench_set_memory ... bench: 85 ns/iter (+/- 4)
    test bench_vec_repeat ... bench: 83 ns/iter (+/- 3)

After:

    test bench_from_elem ... bench: 84 ns/iter (+/- 2)
    test bench_set_memory ... bench: 84 ns/iter (+/- 5)
    test bench_vec_repeat ... bench: 84 ns/iter (+/- 3)
src/librustc/middle/trans/foreign.rs
src/librustc/middle/trans/type_use.rs
src/librustc/middle/typeck/check/mod.rs
src/libstd/str.rs
src/libstd/vec.rs