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

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

阅读 6.2k
3 个回答

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题