python代码运行后内存为什么一直累积

发布于 2022-09-12 04:48:51 字数 135 浏览 57 评论 0

一个函数运行结束之后,内部的变量应该都回收了,内存也会释放,对吧?
我掉用了一个第三方ocr的库,用它来识别图片里的文字。
很多张图片,运行之后占用的内存越来越多。 为什么会这样? ocr的对象不是会一直覆盖吗,函数结束之后,内存不是会释放吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只涨不跌 2022-09-19 04:48:51

当Python运行时,会记录其中分配对象(object allocation)和取消分配对象(object deallocation)的次数。当两者的差值高于某个阈值时,垃圾回收才会启动。默认是700

终难遇 2022-09-19 04:48:51

说一个可能,也是我最近遇到的。

如果这个库有C实现的部分,可能在C代码部分没有恰当处理引用计数,简单说没有用好Py_INCREFPy_DECREF等API。

如果是这种情况,你需要从库的C代码该起

烟燃烟灭 2022-09-19 04:48:51

建议了解一下Python的内存管理,特别是垃圾回收机制。我最近写了一个介绍Python虚拟机内部原理的专栏《Python源码深度剖析》,内存管理机制部分章节可以参考下:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文