Python 中的記憶體錯誤
Muhammad Waiz Khan
2023年1月30日
2021年2月28日
本教程將解釋 Python 中的記憶體錯誤,為什麼會發生,以及如何防止它。
Python 記憶體低導致的錯誤
當程式記憶體不足時會發生記憶體錯誤,這說明要麼是 PC 的記憶體很低,要麼是程式使用了不必要的記憶體。如果記憶體錯誤背後的原因是 PC 機記憶體過低,除了升級 PC 機的記憶體,讓程式能夠正常執行外,我們也無能為力。
使用者也可以嘗試實施下面講解的程式設計實踐來預防記憶體錯誤。
Python 版本錯誤導致的 Python 記憶體錯誤
如果我們有足夠的記憶體可用,但程式還是會出記憶體,那麼原因可能是 Python 無法訪問 PC 的完整記憶體。
而 Python 無法訪問完整記憶體的原因可能是使用者在 64 位機器上使用的是 32 位版本的 Python。使用者只需要在機器上安裝正確的 Python 版本就可以解決這個錯誤。
不必要的物件建立導致的 Python 記憶體錯誤
如果 PC 有足夠的記憶體,並且有正確的 Python 版本,那麼問題可能就出在程式碼裡面。
比如程式建立了太多的物件或進行了不必要的重複。當我們試圖一次性建立程式中的所有物件,或者程式正在建立新的物件,而不是重用或刪除舊的物件時,就會發生這種情況。例如,只要條件為真,程式碼就會建立一個新物件,而不會刪除舊物件。
導致記憶體錯誤的另一個原因可能是程式正試圖一次性載入一個巨大的檔案或資料集,而不是逐塊載入。而在某些情況下,程式碼一直重複相同的資料,而不是使用它的引用,這也會導致記憶體外錯誤。