If you're reading this, you are most likely dealing with an issue regarding a 64-bit Windows machine (such as Windows 2008 Server, Windows 2012 Server, Windows 7, Windows 10 and so on) and a rather old, 32-bit (x86) executable file with some memory issues.
If you already did some research, you might also be already aware of the fact that any single 32-bit application can use a maximum amount of 2GB of RAM, regardless of what your system actually has. This basically means that you cannot fix your issue with an hardware upgrade.
This leaves you with two alternatives, both software-based:
- Get the x64 build of that application, or - in case you developed it first-hand - build it for 64-bit machines.
- Patch the x86 executable files so it can use more RAM.
The former approach is definitely the way to go, assuming you can do that: however, if you stumbled upon this post, there's a high chance that this is not the case. The executable is old and discontinued, you lost the source code or something like that. If that's the case, the only viable option is to patch it.
You can do that using the great (and freeware) 4GB Patch tool developed by Daniel Pistelli, which can be used to modify any 32-bit executable, allowing it to address up to 4GB of RAM - as long as you have a 64-bit Operating System, otherwise it won't work.
In case you're wondering why things are this way on x64 system, here's a brief explanation. On x86 systems, all applications are given 2GB of virtual memory out of the maximum 4GB available for the 32-bit architecture: the other 2 GB are reserved for the operating system itself. On x64 systems these additional 2 GB can be accessed by any 32bit application, as long as a specific flag is set in the file's internal format. The patch tool does just that... and it actually works!
To use the tool, do the following:
- Download the latest version of 4GB Patch from the NT Core website, which is also the author's official page.
- Unpack & execute it. A pop-up window will open, asking you to select a single executable file.
- Navigate through your hard-drive until you find the EXE you want to patch. It's advisable to make a backup of that file before proceeding: it's worth nothing that the tool also does a backup of anything it patches, yet you'll never know...
- Select the EXE file and press OK to patch it.
If you did everything properly, your EXE file should now be able to make use of up to 4GB of RAM.
That's it for now: happy patching!
Great work, but I need to use all available ram, please advise
All I got was “Can’y Open Executable” when I attempted to apply the patch to a 32-bit application. Any advice on how to be able to access it? I know that I ran it properly, or does it even still work in 2020?
Unfortunately I am not the developer of that tool, therefore I don’t know if it’s still being updated or not: it definitely works for most exectables back in the day, maybe isn’t working anymore with newer ones.
move the EXE out of the program files folder, since they are write protected, to the desktop, then use the patch tool. Afterwards, move the file back into the program files folder. I did this, worked for me.
Can this tool be operated by CLI? Any CLI flags or ways to use it in a script?