and hitting reply-all is better...

quick update: the implementation with unsafe & ptr is not slower. I
just have too many cores + power-boost to get a clean benchmark every
time.
Running the benchs with n=1 billions  (instead of 100 millions) gives me:


==> vector_grow_c.csv <==
1000000000,5.084604

==> vector_grow_rust.csv <==
1000000000,5.217096

==> vector_grow_rust2.csv <==
1000000000,4.912147 (yes, getting rid of the second push works!)

 $ rustc --version
rustc 0.12.0-pre-nightly (0e784e168 2014-09-16 23:26:11 +0000)
 $ gcc --version
gcc (GCC) 4.9.1

On Thu, Sep 25, 2014 at 6:18 PM, François-Xavier Bourlet
<bomb...@gmail.com> wrote:
> 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