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 <[email protected]> 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 <[email protected]> wrote:
>>
>> <signature.asc>
>
>
>
> _______________________________________________
> Rust-dev mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev