On Wednesday, November 10, 2010 08:33:45 Xie wrote: > Can't run a simple program. What's wrong, GC? > > import std.stdio; > import std.date; > > void f0() > { > wstring a[]; > > foreach(i; 0 .. 100_000_000) > { > a ~= " "w; > } > } > > void main() > { > auto r = benchmark!(f0)(1); > writeln(r, "ms"); > } > > DMD 2.047
You just tried to create an array with 100_000_000 elements, and arrays try and maintain extra capacity for extra appending, so you're actually trying to create one bigger than that. That's a _lot_ of memory, and it's _contiguous_ memory. You probably hit some sort of memory limit in there somewhere and would have the same problem if you tried to create an array that large in C or C++. That's an _enormous_ array. Maybe it's a 32-bit barrier which will go away once 64-bit dmd is complete, but it's not exactly normal to try and use an array wich 100 million elements in it. The computer does have limits you know. - Jonathan M Davis