Memory usage problem

View: New views
1 Messages — Rating Filter:   Alert me  

Memory usage problem

by Nose Nada :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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