Hello,

the comment at the top of magick/memory.c says:

%  By default, ANSI memory methods are called (e.g. malloc).  Use the
%  custom memory allocator by defining MAGICKCORE_EMBEDDABLE_SUPPORT.  The
%  custom memory allocator has the advantage of using memory-mapped heap
%  allocation which permits the virtual memory to be returned to the system in
%  all cases, unlike the ANSI memory methods that typically only memory-map
%  large allocations.

However, it fails to say that the only place where the memory is
actually returned to the system is the poorly-documented
DestroyMagickMemory() function. As far as Google code search knows, no
applications call this function, and thus they will consume more
memory with this macro enabled (bad for embedded use).

Thus, I think that it is necessary to separate the two aspects of this
macro (removing the need for configuration files and enabling the
custom allocator).

And one question: if my long-running application (that processes lots
of images in batch, but doesn't call DestroyMagickMemory()) after some
time eats 1 GB of RAM with this macro enabled, does this mean that the
same application on the same batch of images without this macro will
also temporarily use 1 GB of RAM?

-- 
Alexander E. Patrakov
_______________________________________________
Magick-developers mailing list
Magick-developers@imagemagick.org
http://studio.imagemagick.org/mailman/listinfo/magick-developers

Reply via email to