[vtkusers] Memory allocation problems under Python wrapped VTK in Windows

Lassi Paavolainen lopaavol at jyu.fi
Sat Jan 17 09:20:22 EST 2009


On Fri, 16 Jan 2009, John Drescher wrote:

> On Fri, Jan 16, 2009 at 3:36 PM, John Drescher <drescherjm at gmail.com> wrote:
> >>> Is this a problem of memory fragmentation?
> >>>
> >>>   Jim
> >>
> >> No it seems not to be as I can execute that non-VTK program and Python
> >> wrapped VTK code in any which order and the result is always the same.
> >>
> > It better be. However I do not believe that makes a difference to your
> > situation. Every program gets its own clean address space when you
> > execute it.
> >
> > As far as address space fragmentation, unless you use the /3GB flag
> > and link with LARGE_ADDRESS_AWARE the maximum single allocation I have
> > found in windows programs ( compiled with VS and no VTK) is around
> > 1.2GB. The reason is that windows loads its dlls inside of the same
> > 2GB of address space that you are allocating memory from so this
> > reduces the maximum size of the block you can allocate. Running python
> > probably makes this worse by the python dlls being loaded at even
> > lower addresses than the windows dlls.
> >
> 
> Here is a link about this:
> 
> http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.kernel/2005-04/msg00457.html
> 
> John

Thanks John. I'll check that and test with those flags.

By the way, I was able to get about 1.9 GB on a program compiled with VS 
and no VTK. Using VTK it dropped to 1.2 GB on Vista and to little over 700 
MB on Windows XP Pro. There seems to be some difference between Vista and 
XP as those tests were ran using exactly same compiled code. XP and Vista 
probably load dlls in memory differently. I remember to read somewhere 
that on some XPs there were a bug with some dlls that were load to address 
at 1 GB which of course makes it impossible to allocate a block over 1GB.

Lassi



More information about the vtkusers mailing list