On Sunday, 16 November 2014 at 16:02:20 UTC, FrankLike wrote:
It means where you have uint x = arr.length you should have had size_t x = arr.length from the very beginning.I test it : module aatest; import std.stdio; import std.datetime; import std.conv; size_t[string] aa; void ada() { for(size_t i=0;i<1000000;i++) { aa[to!string(i)] =i; } } void main() { StopWatch sw; sw.start(); ada(); sw.stop(); writeln("\n time is :" , sw.peek().msecs/1000.0," secs"); } dmd -m64 aatest.d ,and dmd aatest.d -ofaa32.exe Result: m64 :0.553 secs; m32:0.5 secs; Thank you all.
I ran your test program through a profiler, and it spends >40% of the time in garbage collection. So I think the slightly longer run time is due to the 64 bit GC being a bit slower than the 32 bit GC.
