Subject: Re: [boost] [xint] Boost.Move vs Copy-on-Write timings
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2010-05-02 17:10:05
----- Original Message -----
From: "Chad Nelson" <chad.thecomfychair_at_[hidden]>
Sent: Sunday, May 02, 2010 10:50 PM
Subject: [boost] [xint] Boost.Move vs Copy-on-Write timings
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> I've done some further testing, eliminating the Boost.Thread locking on
> the random number generator as a factor, as promised earlier today. Here
> are the raw timings:
> (Debug build)
> Baseline: 29.4, 36.0, 32.8 (32.73)
> GCC move: 32.0, 35.3, 31.2 (32.83)
> Emulated Move: 28.4, 33.8, 28.4 (30.20)
> Copy-on-write: 27.3, 25.0, 26.9 (26.40)
> (Release build)
> Baseline: 10.5, 12.5, 10.6 (11.20)
> GCC move: 11.3, 13.0, 10.4 (11.57)
> Emulated move: 10.0, 10.8, 9.7 (10.17)
> Copy-on-write: 8.5, 8.4, 9.4 ( 8.77)
> Times are measured in seconds, using two sets of ten 2048-bit integers.
> The tests consisted of adding each of those pairs of numbers together
> 10,000 times, multiplying them 10,000 times, and doing a "mulmod"
> operation on them (with a third randomly-generated 2048-bit modulus
> argument) 1,000 times. Each test was run three times, under as close to
> identical situations as I could manage, with the raw results (rounded to
> the nearest tenth of a second) in the first three columns; the fourth
> column is the average of the three.
Could you share the test programm so we can test with other compilers or architectures?
Could you add some figures?
* How many xint::integer copies?
* How many xint::integer moves?
* How many writes? 0?
> The compiler used was GCC 4.4.3, under Ubuntu Linux 10.04. The release
> build used -O2 optimization; the debug build used none. Otherwise, the
> settings were left at their defaults, except where noted below.
Could you give figures with -O3? or bjam variant=release?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk