On my machine I get:

C: 100000000,0.509391
rust: 100000000,0.466069

So rust is faster for me.

For fun, I tried to write the rust version using unsafe and
pre-allocation to remove the second push:

let mut m = Vec::from_fn(101, |_| 0);
let pm = m.as_mut_ptr();
let mut m_idx = 1i;
    let t = time::precise_time_ns();
    for _i in iter::range_step(0, n, n/100) {
        for j in range(0, n/100) {
            v.push(j);
        }
     unsafe {
        ptr::write(pm.offset(m_idx as int),  time::precise_time_ns() - t);
      }
     m_idx += 1;
}

But I get a little slower result (maybe I am doing something wrong
with the unsafe and ptr):
rust2: 100000000,0.472749

And just to be sure, I tested getting rid of iterators (using manual
while loop instead) and this changed nothing (as expected).

my 2 cents


On Thu, Sep 25, 2014 at 4:05 PM, Clark Gaebel <cg.wowus...@gmail.com> wrote:
> You’re also timing two pushes, as opposed to a push and an array write in
> the C version.
>
>
>
> On Thu, Sep 25, 2014 at 3:59 PM, Daniel Micay <danielmi...@gmail.com> wrote:
>>
>> <signature.asc>
>
>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to