簡體   English   中英

當它達到內存限制時退出Python程序

[英]Quit Python program when it hits memory limit

我有幾個Python / Numpy程序,當它們使用太多內存時,往往會導致PC凍結/運行速度非常慢。 當它用於大量內存(例如3.8 / 4GB)時,我甚至無法停止腳本或移動光標。因此,我想在達到內存使用的關鍵限制(例如3GB)時自動退出程序。

我找不到解決方案了。 是否有Pythonic方法來解決這個問題,因為我在Windows和Linux機器上運行我的腳本。

您可以限制進程的內存限制,但這是特定於操作系統的。

另一種解決方案是檢查psutil.virtual_memory()值,並在程序達到某一點時退出程序。

雖然與操作系統無關,但第二種解決方案根本不是Pythonic。 內存管理是我們擁有操作系統的東西之一。

我同意通常你想在操作系統中做到這一點 - 只是因為有一個可靠性因素“可能失控的代碼檢查自己可能失控的行為”

如果要求在腳本中執行此操作,那么我認為我們需要更多地了解您實際在做什么。 如果您有一個占用大部分內存的單個大型數據結構,則可以使用sys.getsizeof來確定該結構的大小,如果它變得比您想要的大,則拋出/捕獲錯誤。

但是,如果不了解程序結構的更多信息,我認為很難幫助......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM