Prev: WMI compiing problem
Next: linker problem: __iob
From: Kellie Fitton on 24 Feb 2006 16:47 Hi, The maximum allocatable size of memory is 2GB on a 32-bit system, however, not applicable to the 64-bit windows, and if you use the switch /3GB in the boot.ini file, you can increase that amount of memory to 3GB per user process address space, and therefore reduce the size of system address space from 2GB to 1GB bytes of memory, and if you use the switch /PAE the application can address more than 4GB of physical memory. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/about_memory_management.asp Kellie.
From: rivenburgh on 24 Feb 2006 17:02 Unfortunately no, the data needs to be read from a file and processed a bit. All of this data management is actually in an external library that I don't want to modify too much. Swapping out "new" for HeapAlloc sounds pretty manageable. Thanks for the idea, though! Reid
From: rivenburgh on 24 Feb 2006 17:11 Thanks, Kellie. I wasn't aware of those functions. I'm not sure how helpful they will be in my case, though. For one, I'm not sure if the end users will have the necessary privileges as mentioned in the manual. I'm also not sure if it's "friendly" to make a grab for a potentially huge amount of memory using the Set version (which sounds like the idea of allocating a 1.5 GB heap when the program starts and working from that). The ideal thing for me would be if the OS memory manager gave me only what I ask for (e.g. 250 MB) and used no more, and did as good a job as possible of minimizing memory fragmentation, improving my chances for finding a contiguous chunk of memory of that size.... Reid
From: rivenburgh on 24 Feb 2006 17:16 The requirement that a single memory allocation has to be contiguous in physical memory is the killer, especially when each request results in (at least temporarily) two such requests (i.e. ask for 250 MB, the OS tries to find two 250 MB chunks). I understand that memory usage and fragmentation under any particular circumstance is unpredictable, so probably the best I can hope for is to make each request result in just ONE request. Thanks, Stephen. Reid
From: rivenburgh on 24 Feb 2006 17:24
Just for the record, the code in question isn't something I can post. I wish I could.... I am able to allocate over 1 GB under the right conditions, so there isn't any artificial ceiling of 1 GB on this machine. Thanks, Reid |