- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When you place the memory block in COMMON it becomes part of the program space prior to initialization of the program. When you use allocate it occures after program initialization. Part of the program initialization is finish loading the core image into virtual memory then asses how much virtual memory is remaining and then divide that into stack space and heap space and while leaving some address space undecided. If you use allocate then the allocation occures after the decision to divide the memory. This is kind of like pre-tax income or after-tax income.
Part of the virtual addres space is dedicated to the operating sytem. On a larger physical memory system the sum of the parts of the operating system can be larger so MS decided to dedicate a larger portion of the address space to the operating system. There may be a knowledge base article on how to reduce the operating system portion of memory. Look under WinXP and 3GB. I think the option will be inserted into BOOT.INI.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - thats very helpful. The /3GB switch (+ /largeaddressaware) doesn't actually help much.
I find it bizarre that to get the most out of a PC I have to go back to an 'old-fashioned' way of allocating memory, as the new way cannot get to as much.
Is there any way of manipulating stack/heap space (or anything else)to allow these large arrays to allocate at run time? Increasing the /heap: parameter does not seem to do anything.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How much memory do you require? Just a little more, a whole bunch more?
What type of data are you storeing? Can the storageformat be altered to conserve memory?
Is there unused memory in your array? Can a sparse array be used?
Is there a performance issue? Can you use a virtual array?
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page