oh no - both files aren't stripped after strip a difference is 2,3 times $ strip main-gdc main-dmd $ ls -l main-dmd main-gdc -rwxr-xr-x 1 alkor alkor 65088 Dec 23 16:44 main-dmd -rwxr-xr-x 1 alkor alkor 155784 Dec 23 16:44 main-gdc
and main-gdc required libgcc_s.so.1 $ ldd main-gdc linux-gate.so.1 => (0xffffe000) libm.so.6 => /lib/libm.so.6 (0xb7ee7000) libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 (0xb7edc000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7ec4000) libc.so.6 => /lib/libc.so.6 (0xb7d89000) /lib/ld-linux.so.2 (0xb7f2d000) --- the next test - math performance --- module test.performance; import std.stdio, std.random; const int MAX = 10000000; int main () { int[] a = new int[MAX]; int[] b = new int[MAX]; double[] c = new double[MAX]; for (auto i=0; i< MAX; i++) { a[i] = i | 0xa1c0; b[i] = i | 0xbadbad; } for (auto i=0; i< MAX; i++) { c[i] = (a[i] & 0x10) ? cast(double)a[i] * b[i] * b[i] : cast(double)a[i] * a[i] * b[i]; } writefln("init a[9555000] 0x%08X", a[9555000]); writefln("init b[9555000] 0x%08X", b[9555000]); writefln("init b[9555000] %f", c[9555000]); return 0; } $ dmd -O -release -oftest-dmd test-performance.d && strip test-dmd $ time ./test-dmd init a[9555000] 0x0091EDF8 init b[9555000] 0x00BBDFBD init b[9555000] 1449827528761239666688.000000 real 0m0.722s user 0m0.552s sys 0m0.168s $ gdc -O3 test-performance.d -o test-gdc && strip test-gdc $ time ./test-gdc init a[9555000] 0x0091EDF8 init b[9555000] 0x00BBDFBD init b[9555000] 1449827528761239666688.000000 real 0m0.786s user 0m0.628s sys 0m0.152s so, dmd's code optimization rules Walter made nice lang & good compiler - it's true Jérôme M. Berger Wrote: > alkor wrote: > > maybe, i do something wrong, but for example: > > > > $ cat main.d > > int main () { > > return 0; > > } > > > > $dmd -O -release -ofmain-dmd main.d > > $gdc -O3 main.d -o main-gdc > > $ ls -l main-dmd main-gdc > > -rwxr-xr-x 1 alkor alkor 123439 Dec 23 14:06 main-dmd > > -rwxr-xr-x 1 alkor alkor 609363 Dec 23 14:06 main-gdc > > > > why the main-gdc in 5 time more then the main-dmd? > > > Because the dmd-built executable is stripped. Try to add "-s" to > the gdc command line or use gdmd with the same options as dmd. > > Moreover, since you are trying to optimize for space rather than > performance, you should use -Os (or at least -O2) rather than -O3. > > > any test shows dmd superiorities over gdc (and gcc) > > dmd rules :) > > > dmd doesn't even work on my computer. End of story :) > > Jerome > -- > mailto:jeber...@free.fr > http://jeberger.free.fr > Jabber: jeber...@jabber.fr > >