Dynamic Closure + Lazy Arguments = Performance Killer?

Robert Fraser fraserofthenight at gmail.com
Fri Oct 24 16:08:21 PDT 2008


Frank Benoit wrote:
> 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.

Agreed. Is it in bugzilla?



More information about the Digitalmars-d mailing list