Memory Allocation Test Program
This program will help you determine if your computer's memory
allocation is fragmented, say by badly behaving dll's provided by some
Works under Windows XP & 2000, possibly others.
Download the memalloc.exe and memalloc.bat files to a convenient
directory, and launch memalloc.bat by double-clicking on it.
Output will be written to file memalloclog.txt. In a good case,
the output will look roughly like this:
Address 0, length 10000, state 10000
MEM_FREE, type 0 module <directory>\memalloc.exe
Address 10000, length 1000, state 1000 MEM_COMMIT, type 20000 module
... stuff deleted
Address 77e60000, length 1000, state 1000 MEM_COMMIT, type 1000000
... more stuff deleted
Largest MEM_FREE region = 77790000 (2004418560) [These values are hex
However it may happen that the largest MEM_FREE region is substantially
less than 2 GB (which is max address space for a Windows process). In
that case you should study the listing to see what is causing your
memory to be fragmented. Sometimes vendor-supplied dll's are
hard-coded to live in the middle of process address space, and are
installed to run as part of every process whether it uses the dll or
not. If that happens, then you will have to figure out how to
keep that dll from getting loaded. It may be necessary to
uninstall the offending software.
I wrote this program to help debug a problem with stitching large
panoramas. It turned out that my computer was running two dll's (one
from Omnipage and one from Iomega) that essentially chopped the address
space for every process into three not-so-big chunks, so that
pano12.dll could not stitch large panos. Uninstalling the offending
software fixed the problem.
This is free software -- use at your own risk.
Comments/questions, please contact
me by email .
Page last modified July 24, 2004.