Why DMD is so slow?

Unknown W. Brackets unknown at simplemachines.org
Tue Jun 3 02:11:12 PDT 2008


As everyone has said, these are problems in DMD and DMC.

DMD is not a bad compiler, but it doesn't have all of the optimizations 
that some other compilers are.  For example, Microsoft's cl and Intel's 
icc might possibly beat gcc at this too (although they don't currently 
compile D code.)

Anyway, it's a matter of priorities.  Improving the performance of DMD 
compiled programs is great, but making the D language work is more 
important.  If GDC can do a good optimization job, that's great for it imho.

-[Unknown]


Marco wrote:
> I have written the code reported below to test execution speed of D in Windows and I have found that the same code is about 10 times slower if compiled using DMD w.r.t. GCD: 1.9 minutes in DMD vs 1.84 seconds in GDC ! Is there perhaps something wrong? why such a difference?
> Thank you.
> 
> // begin of file mandel_d1.d
> /*
> DMD: dmd -inline -release -O mandel_d1.d
> GCD: gdc -O3 --fast-math -inline -lgphobos --expensive-optimizations mandel_d1.d
> */
> 
> import std.stdio;
> 
> int main()
> {
>  cdouble a, b, c, z;
>  double mand_re = 0, mand_im = 0;
> 
>  for (double y = -2; y < 2; y += 0.01) {
>   for (double x = -2; x < 2; x += 0.01) {
>    z = (x + mand_re) + (y + mand_im) * 1i;
>    c = z;
>    for (int i = 0; i < 10000; i++) {
>     z = z * z + c;
>     if(z.re * z.re + z.im * z.im > 4.0) {
>      break;
>     }
>    }
>   }
>  }
>  return 0;
> }
> // end of file mandel_d1.d
> ------------------
> 
> H:\Codici\Benchmarks> ..\timethis.exe mandel_d1
> 
> TimeThis :  Command Line :  mandel_d1
> TimeThis :    Start Time :  Mon Jun 02 11:28:41 2008
> 
> 
> TimeThis :  Command Line :  mandel_d1
> TimeThis :    Start Time :  Mon Jun 02 11:28:41 2008
> TimeThis :      End Time :  Mon Jun 02 11:30:35 2008
> TimeThis :  Elapsed Time :  00:01:54.234
> 
> H:\Codici\Benchmarks> ..\timethis mandel_gdc1
> 
> TimeThis :  Command Line :  mandel_gdc1
> TimeThis :    Start Time :  Mon Jun 02 11:42:27 2008
> 
> 
> TimeThis :  Command Line :  mandel_gdc1
> TimeThis :    Start Time :  Mon Jun 02 11:42:27 2008
> TimeThis :      End Time :  Mon Jun 02 11:42:29 2008
> TimeThis :  Elapsed Time :  00:00:01.843
> 


More information about the Digitalmars-d-learn mailing list