嵌入式 Python 内存不断增长,直到内存耗尽:(
我在我的应用程序中添加了使用嵌入式 Python 执行一些脚本的功能。我需要将一个大的数据字典(大约 15MB)从我的应用程序传递给 python 插件。由于某种原因,每次我传入 15MB 字典时,应用程序都会使用接近 60MB 的内存。
我上网查了下,好像是嵌入式python没有释放内存的问题,即内存泄漏。如果我在主内存耗尽时继续运行该插件足够多次,它最终会出现段错误。
我尝试在脚本末尾使用“del myDict”和“gc.collect()”来释放字典的内存,但这根本没有帮助。这种情况在 Linux 和 OS X 中都会发生。
每次运行 python 插件时,我都会调用 Py_Initialize() 和 Py_Finalize()。
I've added the ability to do some scripting with Embedded Python in my app. I need to pass a large dictionary of data (around 15MB) to the python plugins from my application. For some reason, the app is using close to 60MB of memory each time I pass in 15MB dict.
I've been looking online and it seems that there is a problem with embedded python not releasing memory, i.e. memory leak. It eventually segfaults if I continue to run the plugin enough times as it runs out of main memory.
I've tried releasing the memory for the dictionary using "del myDict" at the end of my script and "gc.collect()", but this isn't helping at all. This happens in both Linux and OS X.
Each time I run a python plugin I call Py_Initialize() and Py_Finalize().
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论