Subject:Opening large XML files Author:Douglas Ford Date:07 Jun 2005 10:40 AM Originally Posted: 07 Jun 2005 10:37 AM
I'm trying to open XML files larger than 300MB, some are 400MB. I thought there would only be a limit, only to the resources of the machine. That's why I moved the software to a machine with 4GB of memory. I can open XML files 290MB on a 1GB machine, but I'm I can't open a 300 or 400MB file on a 4GB server. Is there a registery change I can make to take me over what seems to be a limit?
The error I'm getting is "out of memory". I'm using StylusStudio 6 Professional 287m.
Subject:Opening large XML files Author:Minollo I. Date:07 Jun 2005 11:22 AM
The limit that you are hitting is most likely the one of no more of 2GB of address space per Windows process; that's the default address space limit for all processes in Windows.
There is a notion of "extended process address space" which may let you use up to 3GB of memory per process. Please not that we haven't tested that; but if you have a Visual Studio 6 installation available, you may want to give it a try.
First you should instruct your Windows installation to allow processes to work on 3GB of address spaces; you do that adding /3GB to your boot.ini (see http://support.microsoft.com/kb/283037/ for more details).
Then, from Microsoft:
Executables that can use the 3-GB address space are required to have the bit IMAGE_FILE_LARGE_ADDRESS_AWARE set in their image header.
To set this bit, you must use Microsoft Visual Studio Version 6.0 or later and the Editbin.exe utility, which has the ability to modify the image header (/LARGEADDRESSAWARE) flag. For more information on setting this flag, see the Microsoft Visual Studio documentation.
editbin instructions
If you are running a version of Windows which supports more than 2Gb per process, you can let executables use it by marking their headers suitably. If you have Visual Studio use
editbin /LARGEADDRESSAWARE <stylusstudio>\bin\struzzo.exe
...and check this by...
dumpbin /headers <stylusstudio>\bin\struzzo.exe
You should see a line like
"Application can handle large (>2GB) addresses"