MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

SparseArray memory usage


Hi,

An obvious advantage of SparseArray is that less memory is needed for sparse arrays. Unfortunately, this doesn't always seem to be the case, as I outline below sometimes almost as much memory is used as for an ordinary array.

Can someone explain this, and hopefully tell me how to get around it?

First, a situation which is fine:
Starting with a clean kernel, I get the following memory usage for a 2 x 100million sparse array:

In[1]:= MaxMemoryUsed[]
MemoryInUse[]
a=SparseArray[{{1,1}->1},{2,100000000}];
MaxMemoryUsed[]
MemoryInUse[]

Out[1]= 5826800
Out[2]= 6652184
Out[4]= 6927152
Out[5]= 6654624

Second, a situation which is not fine: I use the transposed array and memory usage explodes:

In[1]:= MaxMemoryUsed[]
MemoryInUse[]
a=SparseArray[{{1,1}->1},{100000000,2}];
MaxMemoryUsed[]
MemoryInUse[]
Out[1]= 5826816
Out[2]= 6652184
Out[4]= 806653720
Out[5]= 406655144

Thanks for any help.


  • Prev by Date: Re: Re: List concatenation - two more methods, one truly fast
  • Next by Date: Re: PolarPlot
  • Previous by thread: Re: Quantile and InverseCDF
  • Next by thread: Re: SparseArray memory usage