Dynamic Closure + Lazy Arguments = Performance Killer?

Frank Benoit keinfarbton at googlemail.com
Fri Oct 24 15:23:17 PDT 2008


Jason House schrieb:
> I ported some monte carlo simulation code from Java to D2, and
> performance is horrible.
> 
> 34% of the execution time is used by std.random.uniform. To my great
> surprise, 25% of the execution  time is memory allocation (and
> collection) from that random call. The only candidate source I see is
> a call to ensure with lazy arguments. The memory allocation occurs at
> the start of the UniformDistribution call. I assume this is dynamic
> closure kicking in.
> 
> Can anyone verify that this is the case?
> 
> 600000 memory allocations per second really kills performance!

It was written in this NG over and over. The D2 full closure feature is
a BIG!!!! problem.

The nested functions passed as callback are an important and performance
technique in D. The D2 full closure "feature" effectively removes it and
makes D2 less attractive IMHO.



More information about the Digitalmars-d mailing list