OK.
Now thing make sense!
To justify my following suggestion, I would like to first digress a little.
Modern OS's allow you to run programs that require more memory than the computer actually has. When I used the term "memory than the computer actually has" I am talking about physical memory. These are physical devices (typically sticks) that store your programs and the data.
When the OS (operating system) determines that a program is requesting more memory than can be stored in the physical memory, it starts to play tricks on you and provides additional storage by using Virtual memory. It is called Virtual because it is not real (i.e. physical) memory.
So how does it create Virtual memory if it is not physical? It allocates space on your hard drive that holds the data that would have been in physical memory if it was available and then it starts a complicated series of tricks to fool the program into thinking it has all of the memory that it needs.
The OS will then set up some "traps" that will allert it when the program is trying to read some of the memory that it thinks it has but in actuallity is on disk. When one of these traps "goes off" your program will be suspended by the OS and then the OS will go read the data from disk and copy it into physical memory. It will then re-start the program (right where it left off) and everything proceeds as if the "tricks" never happened.
The above is a brief explanation. A full explanation is beyond me and is subject to change with every OS upgrade.
Well I miss-lead you slightly in the above because there are some important differences in Virtual Memory and Physical.
THe first big difference is speed. Code resident in physical memory takes only nano-seconds to respond to a read or write attempt. Virtual memory is much slower. It has to wait on disk drives to read data etc.
You may have noticed that when you were running the scaled down version of your code that the application was probably more responsive.
The other differences are not important right now.
So...
Your running out of Virtual memory is probably becuase you do not have anymore space on your hard drive to be used as vitual memory. A larger hard drive may help with your warning messages.
If you need your application to run faster (after you have eliminated the virtual memory issues) then more physical memory is called for.
So...
Start by using "Task Manager >>> Performance" to see what your memory usage is durring run time. If possible, upgrade your memory so you are using physical memory only.
Well I realize that I have been rambling a bit so I should stop here.
So...
You probably need more physical memory.
Ben