Dhrystone speed dmd vs gdc
Dave
Dave_member at pathlink.com
Thu Mar 8 15:47:20 PST 2007
Dave wrote:
> downs wrote:
>> Dave Wrote:
>>
>>> downs wrote:
>>>> I just ran the samples/dhry.d compiled with DMD 1.007 vs GDC .23 svn
>>>> on gcc 4.1.1 using MinGW, on a Pentium M with 1.6g.
>>>> The used flags were -O -release -inline for DMD and -ffast-math -O3
>>>> -frelease -finline-functions for GDC.
>>>> The observed VAX MIPS ratings were 3280 for GDC, but only 2570 for DMD.
>>>> (Note that the GDC rating could be increased to 3480 by adding -msse
>>>> -mfpmath=sse,387, but that is somewhat risky).
>>>> All tests were run with realtime priority.
>>>> Do you think this difference in a synthetic benchmark translates
>>>> into an actual speed difference for real-world applications?
>>>> Did I miss any DMD compiler flags?
>>>> Greetings --downs
>>> The DMD version maybe using a higher resolution timer --
>>> GetTickCount() vs time() for the GDC version. If so, that may have a
>>> lot to do with it.
>>>
>>> On a P4 linux box, if I use an external timer ('time'), DMD
>>> consistently outperforms GDC with the switches above by about 15% or so.
>> I tried the same thing.
>> 18,219s for GDC vs 22,422s for DMD. So the difference seems less, but
>> it's still there.
>
> Hmmm - maybe something to do with MinGW / Pentium M?
>
> Also I have GCC v4.0.3, gdc 0.21 installed but I don't think it would
> make that big of diff (not a complete reversal of the results anyway)??
>
> Here's what I get:
>
> # dmd -O -inline -release dhry -ofdhry_dmd; for x in 1 2 3; do time
> dhry_dmd >/dev/null; done
> gcc dhry.o -o dhry_dmd -m32 -lphobos -lpthread -lm
>
> real 0m2.221s
> user 0m2.200s
> sys 0m0.008s
>
> real 0m2.421s
> user 0m2.408s
> sys 0m0.004s
>
> real 0m2.299s
> user 0m2.288s
> sys 0m0.000s
>
> # gdc -ffast-math -O3 -frelease -finline-functions -msse -mfpmath=sse
> dhry.d -o dhry_gdc; for x in 1 2 3; do time dhry_gdc >/dev/null; done
>
> real 0m2.827s
> user 0m2.816s
> sys 0m0.004s
>
> real 0m2.827s
> user 0m2.812s
> sys 0m0.004s
>
> real 0m2.802s
> user 0m2.788s
> sys 0m0.000s
>
> I'll see about upgrading gdc (something I've been meaning to do anyhow)
> and check it out...
Using gdc 0.23 & gcc 4.1.1, and DMD v1.007 (slight improvement for gdc, but DMD is still a tad
faster on my P4 2.2 Ghz, FC5 machine):
# dmd -O -inline -release dhry -ofdhry_dmd; for x in 1 2 3; do time dhry_dmd >/dev/null; done
gcc dhry.o -o dhry_dmd -m32 -lphobos -lpthread -lm
real 0m2.297s
user 0m2.288s
sys 0m0.000s
real 0m2.223s
user 0m2.212s
sys 0m0.004s
real 0m2.310s
user 0m2.300s
sys 0m0.000s
# gdc -ffast-math -O3 -frelease -finline-functions -msse -mfpmath=sse dhry.d -o dhry_gdc; for x in 1
2 3; do time dhry_gdc >/dev/null; done
real 0m2.598s
user 0m2.584s
sys 0m0.000s
real 0m2.595s
user 0m2.580s
sys 0m0.004s
real 0m2.640s
user 0m2.620s
sys 0m0.004s
More information about the Digitalmars-d
mailing list