0
我剛看到一臺機器上發生了MemoryError
,我注意到服務器上的可用緩存在這之後急劇增加。有沒有什麼方法可以在拋出錯誤時觸發內存管理任務?或者這可能是由服務器(Linux/CentOs)管理的?MemoryError是否會導致python刷新其緩存?
我剛看到一臺機器上發生了MemoryError
,我注意到服務器上的可用緩存在這之後急劇增加。有沒有什麼方法可以在拋出錯誤時觸發內存管理任務?或者這可能是由服務器(Linux/CentOs)管理的?MemoryError是否會導致python刷新其緩存?
MemoryError
沒有的方式,應該導致這種情況發生的話,並沒有其他異常特殊處理,但:
BaseException
,不Exception
MemoryError
繼承,所以它的少可能會被「通用」0處理塊,意味着更多堆棧層被解開並最終被釋放所有這一切都增加了機率內存將被釋放,但它沒有一個是專門針對MemoryError
可能被釋放;如果您點擊Ctrl-C
並觸發KeyboardInterrupt
,則可能會觀察到相同的行爲。更有可能的是,你看到Python退出,或者Linux正在通過轉儲它的緩存來響應極端的內存請求;在之後MemoryError
會來轉儲高速緩存以試圖滿足大內存請求,特別是如果請求是在幾個連續的內存塊請求中進行的,而不是一個巨大的請求。
神奇的解釋,非常感謝! – JacobIRR