Dynamic Closure + Lazy Arguments = Performance Killer?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Fri Oct 24 17:59:49 PDT 2008
Jason House wrote:
> 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!
std.random does not use dynamic memory allocation. Walter is almost done
implementing static closures.
Andrei
More information about the Digitalmars-d
mailing list