Language Shootout
Dave
Dave_member at pathlink.com
Fri Mar 30 18:59:57 PDT 2007
Don Clugston wrote:
> David B. Held wrote:
>> Dave wrote:
>>> Dan Wrote:
>>>
>>>> Hi guys,
>>>>
>>>> This idea will only work with Walter in on it. : p I was thinking
>>>> that we might go through the various benchmarks in "the language
>>>> shootout" and find out those items where D is significantly behind
>>>> for any reason, and correct the performance.
>>>>
>>>> For example, against Eiffel, you see their Fasta implementation is
>>>> 38 times faster than D's. Why not compile the code, find out how it
>>>> works and see why D's that much slower - and then Walter can fix the
>>>> code?
>>>>
>>>
>>> Huh? D is a tad better on one machine and just a bit slower on the
>>> other machine (on the Shootout). Maybe there was some sort of problem
>>> on the site when you looked at it?
>>>
>>> http://shootout.alioth.debian.org/gp4/benchmark.php?test=fasta&lang=all
>>>
>>> http://shootout.alioth.debian.org/debian/benchmark.php?test=fasta&lang=all
>>>
>>
>> In fact, the D version is written nicely, but the the fastest C++
>> version is clearly written for speed. I'm willing to bet that D could
>> close the gap by taking away all classes and using free functions +
>> structs the way the C++ version does. Anybody up for it? Since we
>> can't test on the shootout machine itself, improvements should be
>> measured relative to the currently published version.
>
> Try changing the constants in the Random class to be 'const double'
> instead of 'const int'. Mixing ints and doubles is really slow.
>
> Try replacing the Random class with:
>
> double genRandom(double max)
> {
> static double seed = 42;
> const double IA = 3877, IC = 29573, IM = 139968;
>
> return max * ((seed = (seed * IA + IC) % IM) * (1.0 / IM));
> }
I tried that and get about 10% slower on a P4?
Thanks,
- Dave
More information about the Digitalmars-d
mailing list