A benchmark, mostly GC

Marco Leise Marco.Leise at gmx.de
Sun Dec 18 16:20:09 PST 2011


Am 18.12.2011, 23:15 Uhr, schrieb bearophile <bearophileHUGS at lycos.com>:

> Marco Leise:
>
>> Looking at the call graphs, it looks to me like a total of ~63 % of the
>> time is spend in memory management routines while the rest goes to  
>> BigInt.
>
> But dsimcha said:
>
>> My optimizations make very little difference on this benchmark, but for
>> good reason:  It's not a very good GC benchmark.  I ran it with my GC
>> profiling code enabled and it only spends around 10% of its execution
>> time in GC.  We need to figure out why else this benchmark may be so  
>> slow.
>
> How is this possible?
>
> Bye,
> bearophile

I could imagine these differences:

I tested the stock 2.056 version - but I'll check 2.057 when I write the  
Gentoo ebuild.
The profiling method: oprofile is a sampling profiler, while dsimcha  
probably instrumented the code.
Scope of profiled functions: dsimcha talks about the GC, while I talk  
about memory management functions in general. Allocating an array or  
setting its size is functionality I accounted to memory management. I know  
to little about the GC to know which functions do the garbage collection  
cycles, and I wont just add up all functions having GC in their name, so a  
conservative guess could confirm what dsimcha said.
If you want to you can take a look at the report file. The unindented  
lines contain the percentage for that function excluding sub-calls. The  
binary was compiled with dmd -O -release -noboundscheck -g, in 64-bit mode.


More information about the Digitalmars-d mailing list