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.

Reply via email to