On 05/05/2014 02:38 PM, Kapps wrote: > I think that the GC actually blocks when > creating objects, and thus multiple threads creating instances would not > provide a significant speedup, possibly even a slowdown.
Wow! That is the case. :) > You'd want to benchmark this to be certain it helps. I did: import std.range; import std.parallelism; class C {} void foo() { auto c = new C; } void main(string[] args) { enum totalElements = 10_000_000; if (args.length > 1) { foreach (i; iota(totalElements).parallel) { foo(); } } else { foreach (i; iota(totalElements)) { foo(); } } } Typical run on my system for "-O -noboundscheck -inline": $ time ./deneme parallel real 0m4.236s user 0m4.325s sys 0m9.795s $ time ./deneme real 0m0.753s user 0m0.748s sys 0m0.003s Ali