Have you tried setting [`$HistoryLength`][1] to zero:

    $HistoryLength=0;

The memory is not freed, because the previous data is still available by `Out[nn]` or `%nn`.

  [1]: http://reference.wolfram.com/mathematica/ref/$HistoryLength.html