I wrote a routine that convolves an impulse response array with a test array and checks for the RMS difference between that convolution and a data array. I do this iteratively so that I can modify the test array to obtain an improved fit to the data and eventually generate a good prediction of the test array required to produce the data. I noticed that my memory in use increases steadily (I've narrowed it down to the ListConvolve function) and I'm hoping someone knows how to mitigate this memory drain. Here is a simplified code to demonstrate this effect: z = 1; herp = Table[1, {i, 1, 10^2}]; derp = Table[0, {i, 1, 10^2}]; Monitor[ While[z < 10^6, ListConvolve[derp, herp, 1]; z++; blurg = MemoryInUse[]; ClearSystemCache[]; $HistoryLength = 0; ]; ,{z, blurg}]; Removing the ListConvolve part of the code leaves the memory in use flat. Any help is greatly appreciated!