如何记录python MemoryError(当我内存不足时)

Jon*_*ker 5 python memory logging exception-handling out-of-memory

作为我的程序之一,我想捕获任何程序MemoryError并将其记录下来。目前,我正在使用traceback.format_exception所有其他异常的格式。我也想这样做MemoryError

但是,使用format_exception需要使用更多的内存,这正是我内存不足时无法执行的操作。

做什么?

当我抛出MemoryError终止消息时该怎么办?理想情况下,我会记录它们,然后基于释放处理程序和thrower *之间的堆栈部分为我释放足够的内存这一假设来恢复程序。

(*以及仅由该堆栈部分发出的引用保持活动的那些堆对象)

Fre*_*ell 1

一般来说,内存不足错误可能是程序中最难处理的问题,因为您失去了可以让您执行任何操作的主要资源。也许该程序可以在脚本中运行,该脚本可以从输出中检测故障并将其记录下来。

可以尝试使用一些内存,其唯一目的是在内存不足错误时“释放”。但我对 python 中的这种方法并不乐观。