[問題] 請問為何我這程式會吃掉過多記憶體?

看板Python作者 (克斯特)時間16年前 (2009/02/08 01:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
大家好,想請教一個問題,我這段程式為何會在執行的時候 隨著執行過程記憶體不斷消耗掉? 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
文章代碼(AID): #19ZSROhC (Python)
文章代碼(AID): #19ZSROhC (Python)