Hi Georg,
First, take into account that with Windows Vista, your 2 GB reduce to about 1 GB available to applications. Then subtract the memory required for your antivirus/firewall/antispam software, which you probably are using (you should, if you're connected to the Internet). Then even if you're only running PixInsight (no other applications or controllers in the background, which you probably have), Windows will apply a restrictive policy to allocate moderately sized RAM blocks. What I'm trying to say is that with 2 GB and Vista, it's a miracle if you're able to process 50 of your images. You must have your box very well tuned
![smile :)](http://pixinsight.com/forum/Smileys/default/smile.gif)
ImageIntegration allocates an independent buffer for each integrated image. This means that with the default buffer size, 100 x 16 MB = 1600 MB clearly explains why you can't integrate 100 images --of course, you don't have 1.6 GB available. The minimum buffer size (if you select a zero buffer size) is one row of pixels.
ImageIntegration also needs many working structures for integration and for its internal file cache, if you have it enabled. It also allocates the 32-bit (or 64-bit, as an option) integrated image and the rejection maps, if selected, which are also 32-bit images.
- stacking those 50 images only worked after reducing the buffer to 1 MB. How much memory is does the buffer consume per image?
The problem isn't memory consumption considered globally, but how memory blocks can be allocated. With severe memory restrictions, allocating large contiguous blocks becomes impossible, even if the total amount of required memory is available.
- observing memory consumption in the task manager, memory consumption peaked while integration was working on the middle rows on of the result. Before this, memory consumption slowly increased, after this it slowly reduced. What is causing this behaviour?
ImageIntegration allocates most of its working blocks at the beginning of the process. Then there should be some fluctuations due to temporary working vectors and matrices, but memory allocation should remain basically constant during the whole process. I have designed the process to minimize memory fragmentation, but with severe memory restrictions, this may become a serious problem.
- When activating "Windsorized sigma clipping", integration failed with an API error (10). Is this memory related, or something else?
Yes, API code 10 corresponds to an out of memory error. For your reference, this is the current set of API errors (copied directly from PI core source code files):
namespace APIError
{
enum value_type
{
NoError,
Unknown,
InvalidModuleHandle,
InvalidConsoleHandle,
InvalidConsole,
InvalidMetaProcessHandle,
InvalidProcessInstance,
InvalidAllocationSize,
InvalidAddress,
InvalidString,
OutOfMemory,
InvalidDeallocation,
InvalidImageParameters,
InvalidImageOwner,
InvalidImageHandle,
BadImage,
ViewIsLocked,
ViewIsReadLocked,
ViewIsWriteLocked,
ImageIsReadOnly,
ImageIsIconic,
ImageNotScheduled,
InvalidObjectReference,
RefCountOutOfRange,
ConflictingModules,
ThreadSuspended,
SecurityViolation,
ItemIsReadProtected,
ItemIsWriteProtected,
InvalidGUIOperation,
InvalidUIObjectHandle,
InvalidFileFormatHandle,
InvalidFileFormatInstanceHandle,
InvalidActionHandle,
InvalidControlHandle,
InvalidSizerHandle,
InvalidTreeBoxNodeHandle,
InvalidTimerHandle,
InvalidThreadHandle,
InvalidMutexHandle,
InvalidViewListHandle,
InvalidGraphicsHandle,
InvalidBitmapHandle,
UnknownBitmapFormat,
InvalidSVGHandle,
InvalidBrushHandle,
InvalidPenHandle,
InvalidCursorHandle,
InvalidFontHandle,
InvalidFilePath,
InvalidFileExtension,
InvalidViewHandle,
InvalidPreviewHandle,
InvalidWindowHandle,
InvalidActionData,
InvalidResolution,
InvalidKeyword,
InvalidSampleFormat,
InvalidIdentifier,
InvalidICCProfile,
InvalidProfilePath
};
};
- What other factors are important for memory consumption?
1. A minimum of 4 GB is strongly recommended to run PixInsight.
2. Use Linux.
Hope this helps to convince you to buy those chips
![Wink ;)](http://pixinsight.com/forum/Smileys/default/wink.gif)