Huge memory leaks when importing two-dimensional array in Mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg103451] Huge memory leaks when importing two-dimensional array in Mathematica
- From: Alexey <lehin.p at gmail.com>
- Date: Mon, 21 Sep 2009 19:29:09 -0400 (EDT)
Hello,
Consider the following (evaluated in Mathematica 7.01):
In[1]:= MemoryInUse[]
t = RandomReal[{-1, 1}, {1000000, 2}];
MemoryInUse[]
SetDirectory["C:/"]
t >> temp.dat
MemoryInUse[]
Quit[]
Out[1]= 10040344
Out[3]= 26058000
Out[4]= "C:\\"
Out[6]= 26065008
One may see that the matrix "t" takes less than 26Mb of memory. Now we
try
to import the file "temp.dat":
In[1]:= MemoryInUse[]
SetDirectory["C:/"]
t = << temp.dat;
MemoryInUse[]
Out[1]= 10039112
Out[2]= "C:\\"
Out[4]= 86058504
The same data takes more than 80Mb of memory! How this happens?
The same code in Mathematica 5.2 works as expected:
In[1]:=
MemoryInUse[]
t=RandomReal[{-1,1},{1000000,2}];
MemoryInUse[]
SetDirectory["C:/"]
t>>temp.dat
MemoryInUse[]
Pause[2]
Quit[]
Out[1]=
2128352
Out[3]=
2129928
Out[4]=
C:\
Out[6]=
2134576
In[1]:=
MemoryInUse[]
SetDirectory["C:/"]
t=<<temp.dat;
MemoryInUse[]
Out[1]=
2127256
Out[2]=
C:\
Out[4]=
2129344
This memory leak is critical for me because I can not import backwards
in
Mathematica 7 my file exported in this way from Mathematica 7. The
file size
is 512Mb and it may be imported in Mathematica 5.2 without
difficulties.
Any ideas?