[英]Break a loop and quit the program when user types ''quit'' in 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.