在python中使用pickle时发生内存泄漏

我有一个很大的泡菜文件,其中包含数百个经过训练的python r模型:这些是使用rpy2库构建的统计模型.我有一个类,每次调用它的一个方法时都会加载该pickle文件(该方法在循环中多次调用).碰巧,即使没有引用指向加载的内...

我有一个很大的泡菜文件,其中包含数百个经过训练的python r模型:这些是使用rpy2库构建的统计模型.

我有一个类,每次调用它的一个方法时都会加载该pickle文件(该方法在循环中多次调用).
碰巧,即使没有引用指向加载的内容,也无法释放加载pickle文件内容所需的内存(大约100 MB).我正确打开和关闭输入文件.我还尝试在每次迭代时重新加载pickle模块(甚至rpy).没有什么变化.似乎只是加载内容会永久锁定某些内存.

解决方法:

我可以重现该问题,而现在这是rpy2问题跟踪器中的一个未解决问题:https://bitbucket.org/rpy2/rpy2/issues/321/memory-leak-when-unpickling-r-objects

编辑:问题已解决,并且该修复程序包含在rpy2-2.7.5(刚刚发布)中.

本文标题为:在python中使用pickle时发生内存泄漏

基础教程推荐