View Issue Details

IDProjectCategoryView StatusLast Update
0001762Slicer4Core: Base Codepublic2012-08-21 09:48
Reporterlassoan Assigned Tofinetjul  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionSlicer 4.0.1 
Target VersionSlicer 4.1.0Fixed in VersionSlicer 4.1.0 
Summary0001762: Out of memory issues on 32-bit systems
Description

Loading or manipulating medium-sized volumes in 32-bit Slicer builds is not possible due to lack of available memory. Using 32-bit Win7 debug build a 100MB volume can be loaded only once, but then you cannot process it because there is not enough memory to store the output or load another similar volume. This amount of available memory is not enough even for basic evaluation purposes.

Workaround: move all CLI dlls from the ...\lib\Slicer3\Plugins\ to ...\bin (this forces Slicer to use the EXE interface for CLI modules)

Possible resolutions:

  • Do not keep the CLI modules in memory (they consume about 500MB - Win7 32-bit, debug)
  • Decrease the memory consumption of the Slicer core (currently about 650MB - Win7 32-bit, debug)
  • Use 64-bit builds

There are a couple of options for not keeping the CLI modules in memory, but the simplest choice seems to be simply using the EXE interface instead of the DLL interface. This would be useful anyway, because it provides more memory for both Slicer and the CLI module, prevents Slicer crashes due to faulty modules. There might be a slight performance decrease in certain cases, so enabling the DLL interface could be an application option (but by default the DLL interface should be disabled).

Additional Information

Memory use (measured by Process explorer "Virtual size") of Slicer4 on Win7, 32-bit debug build, in GB:
0.653 nothing loaded
0.665 QT scripted only
0.698 QT loadable only
1.136 CLI only
1.191 everything loaded

How to reproduce:
• Startup: 1.191GB
• After selecting the RANDO^PROSTATE/PELVIS CURATIVE CT dataset (https://subversion.assembla.com/svn/sparkit/trunk/SlicerRt/data/eclipse-8.1.20-phantom-prostate/Original) in the DICOM browser (not loaded yet): 1.315GB
• After loading the CT: 1.411GB
• After loading the CT (again): 1.506GB
• After loading the CT (again): fails to load it
It doesn’t get too close to the theoretical 2GB max, so we seem to have quite a bit of memory fragmentation (we supposed to have 500MB of available memory but we cannot allocate 100MB contiguous memory).

TagsNo tags attached.

Activities

finetjul

finetjul

2012-02-29 11:02

administrator   ~0003746

Fixed in r19468:
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=19468

lassoan

lassoan

2012-03-01 11:18

developer   ~0003758

Thank you it works perfectly. Enabling the "Prefer Executable CLIs" option decreases virtual size by 490MB in debug mode and by 170MB in release mode (Windows 7).

Issue History

Date Modified Username Field Change
2012-02-28 05:16 lassoan New Issue
2012-02-28 05:16 lassoan Status new => assigned
2012-02-28 05:16 lassoan Assigned To => finetjul
2012-02-29 11:02 finetjul Note Added: 0003746
2012-02-29 11:02 finetjul Status assigned => resolved
2012-02-29 11:02 finetjul Fixed in Version => Slicer 4.1.0
2012-02-29 11:02 finetjul Resolution open => fixed
2012-03-01 11:18 lassoan Note Added: 0003758
2012-03-01 11:18 lassoan Status resolved => closed
2012-08-21 09:48 jcfr Target Version => Slicer 4.1.0