2014-07-18 34 views
0

我有一個大小約爲100 MB的csv文件。然後我有足夠的內存,大約8GB。在運行時,我不會超過保守猜測,說10 pandas.DataFrames包含整個csv文件。所以確定不需要超過2Gb的內存。 getsizeof(dataframe)也不會返回一個巨大的數字。然後在一個函數中,我做了以下工作:找到一個有趣的值,讓它成爲電機電流的概要。然後用bokeh圖表繪製10秒(約300個數據點),並在電機電壓,電機速度等圖表上繪製另外4個圖表。該函數在for循環中以大致相同的方式繪製大約50個圖。變量在本地定義,所以它們被覆蓋每個循環。現在最大的問題是:爲什麼我的記憶每次迭代都會變得更完整?有時會達到7 Gb左右,並且出現內存錯誤。我沒有看到我的數據在內部如何變大。記憶的事情甚至發生在10 mb大小的csv文件中。與熊貓,散景和蟒蛇相結合的內存錯誤2.7

回答

0

即使在函數的生命週期結束後,Python也沒有釋放內存。 del variablename也沒有釋放內存。

這奏效了:

import gc 

gc.collect()