Simple program leaking memory - why?
- To: mathgroup at smc.vnet.net
- Subject: [mg130732] Simple program leaking memory - why?
- From: gredner at gmail.com
- Date: Tue, 7 May 2013 03:55:08 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
Hi folks,
I'm fighting an issue in which a simple Mathematica program to export a bunch of plots is leaking a huge amount of memory - enough to exhaust the 12G available on my machine. The problem is, it looks like the program should run in bounded memory! A simplified version of my code which demonstrates the problem follows:
====================
n = 10000;
(* just some bogus data *)
makeData[_] := Table[{{x, y} = RandomReal[{-3, 3}, {2}], {y, -x}}, {200}];
data = Array[makeData, n];
ParallelMap[
Export[
"movie-" <> IntegerString[#, 10, 4] <> ".png",
ListVectorPlot[data[[#]]]] &,
Range[1, n]];
====================
The problem occurs whether the loop is Map or Do, Parallel- or not. It occurs in Mathematica 8 and 9, both under Linux.
The amount of memory leaked per frame is considerable - approximately .6 MB in my tests. I don't see where it could be going, unless Export is caching every byte which passes through it!
I've also asked this question on stackexchange [1] but so far nobody has a clue.
Thanks,
-Gabe
[1] http://mathematica.stackexchange.com/questions/24461/why-does-this-simple-program-leak-memory