D has now surpassed C++ in overall performance
Knud Soerensen
4tuu4k002 at sneakemail.com
Fri Feb 2 07:19:08 PST 2007
On Thu, 01 Feb 2007 18:30:55 -0800, janderson wrote:
> John wrote:
>> D has now surpassed C++ in overall performance at the "Computer Language Shootout" website. This change came about with the upgrade to 1.004 from 1.000 (I'm guessing because of the new GC).
>>
>> http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&calc=Calculate&xfullcpu=1&xmem=1&xloc=0&binarytrees=1&chameneos=1&message=1&fannkuch=1&fasta=1&knucleotide=1&mandelbrot=1&meteor=0&nbody=1&nsieve=1&nsievebits=1&partialsums=1&pidigits=1&recursive=1®exdna=1&revcomp=1&spectralnorm=1&hello=0&sumcol=1
>
>
> Only if you take memory into account. CPU performance is still not up
> to par.
>
> The recursive and the mandelbrot are the biggest performance eaters.
> Recursive is the same as gcc so it must be a compiler thing I guess.
>
> -Joel
Well the gcc mandelbrot use sse commands for fast computations
maybe when D get vectorization this will change.
I noticed that gcc recursive uses
template < class N >
N Fib(N n)
{
return __builtin_expect(n < 2, 0) ? 1 : Fib(n - 2) + Fib(n - 1);
}
while D uses
template Fib(T)
{
T Fib(T n)
{
if(n < 2) return 1;
else return Fib(n-2) + Fib(n-1);
}
}
I remember a while back I notice that there is a speed difference
between using x<y ? a:b; and using if (x<y) a; else b;
maybe they are not optimized the same way ???
Knud
More information about the Digitalmars-d-announce
mailing list