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