Hello there!
I'm using Octave 3.0 running on Fedora 9 in a Dell XPS M1530 (x86-64). I have a problem with memory usage that do not allow me to go on with my work. Here it goes.
"data" is a binary file containing a matrix and a cell arrays both of 103500x48 elements. The size of this file is 280 MB.
Before starting Octave the whole system is using around 300MB of my 3GB of RAM
Once I start Octave, this program takes around ~30 MB of RAM
However, after
octave:1> D = load('data');
Octave jumped to use up to 1.2 GB of RAM. Remarkably, the memory alocated to D is just 65MB, which is far smaller than the increase from 30MB to 1.2 GB.
octave:2> whos -l
...
*** local user variables:
Prot Name Size Bytes Class
==== ==== ==== ===== =====
rwd D 1x1 65014358 struct
rw- __nargin__ 1x1 8 double
...
global variables and functions displayed by whos -l occupy just few bytes. Then, the allocation of memory to D does not explain the jump from 30MB to 1.2 GB in memory usage by Octave.
Furthermore, after
octave:3> clear D
D is cleared but the usage of RAM by Octave keeps at around 1.2 GB.
Just when I close Octave the RAM returns to pre-Octave levels.
The situation gets just worse if I load the file as part of a function with just a few more commands (dir, if,isempty, regexpr). In this case my 3GB of RAM get exahusted and 300MB of swap are used.
What is going on here. How can I manage that the usage of RAM becomes coherent with the size of the data I'm loading. At this point I haven't been able to keep using Octave for my work because the extensive use of sawp memory, up to 4GB for bigger data files, results in a very poor performance.
I look forward to hear from you.
Regards,
Omar