[問題] 請問為何我這程式會吃掉過多記憶體?
大家好,想請教一個問題,我這段程式為何會在執行的時候
隨著執行過程記憶體不斷消耗掉?
index = [None] * 4896990
data = [None] * 71242183
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^我先宣告固定大小的List
這時候記憶體大約吃了500MB
print raw_input('ok1:')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^我程式在這邊暫停,我確定到此記憶體只吃500MB
current = 1
index[0] = 0
for line in open('SLo.txt'):
line = line.rstrip()
data1 = [int(i) for i in line.split()]
l = len(data1) - 1
index[current] = index[current-1] + l
data[index[current-1]:index[current]] = data1[1:]
current +=1
接著在跑迴圈的時候記憶體不斷消耗,程式執行過程中多吃掉了1G以上
我的SLo.txt這檔案相當大是沒錯,可是使用for迴圈來直接讀取檔案
會循序讀取檔案,並不會將檔案內容直接載入到記憶體阿?
接著我直接指定一段data的範圍,將data1的內容直接覆蓋過去
這樣也不會消耗掉記憶體阿?
請問到底是哪個部份在消耗記憶體呢?
不知道我觀念哪裡錯誤了?
謝謝各位前輩!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.125.2.46
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 5 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章