您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python中的MemoryError钩子?

Python中的MemoryError钩子?

这不是处理内存管理的好方法。在看到MemoryError时,您已经处于临界状态,内核可能已经接近杀死进程以释放内存,在许多系统上,您将永远看不到它,因为它将进行交换或只是OOM- 杀死您的进程,而不是失败分配。

您可能会看到MemoryError的唯一可恢复的情况是,在尝试进行不适合可用地址空间的非常大的分配之后,这仅在32位系统上很常见。

如果您希望有一个高速缓存可以根据其他分配的需要释放内存,则它不需要与 error 接口,而是与分配器本身接口。这样,当您需要释放内存以进行分配时,您将知道 需要多少 连续内存,否则您将盲目猜测。这也意味着您可以在内存分配发生时进行跟踪,因此可以将内存使用情况保持在特定级别,而不是让其不受限制地增长,然后在内存分配过高时尝试恢复。

我强烈建议,对于大多数应用程序而言,这种缓存行为过于复杂-通常,最好只使用一定数量的内存进行缓存。

python 2022/1/1 18:50:30 有348人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶