On Sunday, 3 March 2013 at 15:52:49 UTC, John Colvin wrote:
On Sunday, 3 March 2013 at 14:05:02 UTC, Sparsh Mittal wrote:
I am running
enum long DIM = 1024L * 1024L * 1024L* 8L ;
void main() {
auto signal = new double[DIM];
}
and getting core.exception.OutOfMemoryError error. One option
is to use short/int, but I need to use double. Also, on using
large arrays, computer becomes slow.
Is there no workaround at all, so that I can work on large
arrays? Please let me know.
Assuming double.sizeof==8 on your machine, You're requesting
1024*1024*1024*8*8 bytes = 68GB, do you have that much RAM
available?
Depending on your OS, you will of course have to take in to
account page file limits and swap partition sizes.
Nonetheless, 68GB is a huge amount of memory to have in a single
array, that's 8.6 billion numbers. In reality I doubt you will
need that many.