看板 Python 關於我們 聯絡資訊
大家好,想請教一個問題,我這段程式為何會在執行的時候 隨著執行過程記憶體不斷消耗掉? 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