【发布时间】:2011-04-28 19:43:39
【问题描述】:
有没有办法全局捕获 MemoryError 异常,以便库可以清除缓存,而不是让用户代码看到 MemoryError?
我正在用 Python 开发一个内存缓存库,用于存储非常大的对象,以至于用户通常希望使用所有可用的 RAM 来简化他们的脚本和/或加快它们的速度。我希望能够有一个钩子,python 解释器要求回调函数释放一些 RAM,以避免在用户代码中调用 MemoryError。
操作系统:Solaris 和/或 Linux
Python:cPython 2.6.*
编辑:我正在寻找一种不会被 except 块处理的机制。如果由于任何原因在任何代码中都会出现内存错误,我希望 Python 解释器首先尝试使用回调来释放一些 RAM,并且永远不会生成 MemoryError 异常。我不控制会产生错误的代码,我希望我的缓存能够积极地使用尽可能多的 RAM,根据用户代码的需要自动释放 RAM。
【问题讨论】:
标签: python memory-management caching