Message passing between threads: Java 4 times faster than D

Marco Leise Marco.Leise at
Thu Feb 9 10:14:25 PST 2012

Am 09.02.2012, 17:22 Uhr, schrieb dsimcha <dsimcha at>:

> I wonder how much it helps to just optimize the GC a little.  How much  
> does the performance gap close when you use DMD 2.058 beta instead of  
> 2.057?  This upcoming release has several new garbage collector  
> optimizations.  If the GC is the bottleneck, then it's not surprising  
> that anything that relies heavily on it is slow because D's GC is still  
> fairly naive.

I did some OProfile-ing. The full report is attached, but for simplicity  
it is without call graph this time. Here is an excerpt:

CPU: Core 2, speed 2001 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit  
mask of 0x00 (Unhalted core cycles) count 100000
samples  %        linenr info                 symbol name
13838    18.8416  gcx.d:426                   void*  
gc.gcx.GC.malloc(ulong, uint, ulong*)
4465      6.0795  gcx.d:2454                  ulong  

Compiled with: gcc-Version 4.6.2 20111026 (gdc 0.31 - r751:34491c2e7bb4,  
using dmd 2.057) (GCC)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: report.txt
URL: <>

More information about the Digitalmars-d mailing list