首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 ifxPy内存泄漏

Python3 ifxPy内存泄漏
EN

Stack Overflow用户
提问于 2018-10-16 15:15:07
回答 1查看 223关注 0票数 0

我使用systemd创建了一个linux服务。我的服务调用Python脚本。这个脚本每30秒在无穷大循环中调用一个函数,我使用time.sleep(30)每30秒循环一次。我的脚本在Informix数据库上打开一个连接,读取数据,在本地MongoDB中插入数据,调用web服务。

但是服务内存永远不会减少。每次记忆都会增加。如果我重新启动服务,内存就会完全释放。服务开始时间为19 14,14小时后为555 14。

这是我的代码:

代码语言:javascript
复制
def populate_app():
    ifx_connection = IfxPy.connect(ifx_param, "", "")
    stmt = IfxPy.exec_immediate(ifx_connection, sql)
    dictionary = IfxPy.fetch_assoc(stmt) # Get data key / value

    ...

    IfxPy.close(ifx_connection)

while True:
    populate_app()
    time.sleep(30)

内存泄漏可能是由于requestifxPypymongo库造成的吗?

我在循环中注释了我的所有代码,只允许populate_app函数中的这两行代码:

代码语言:javascript
复制
ifx_connection = IfxPy.connect(ifx_param, "", "")
stmt = IfxPy.exec_immediate(ifx_connection, sql)

所以记忆不会增加。然后我把这句话:

代码语言:javascript
复制
dictionary = IfxPy.fetch_assoc(stmt) # Get data key / value

记忆泄漏又来了。所以我想ifxPy有个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 14:19:01

您能尝试释放调用free_result()的结果集内存吗?

类似于:

代码语言:javascript
复制
....
....
# Bulk insert
if new_users:
    user.insert_many(new_users)
if error_user_data:
    user_error.insert_many(error_user_data)

IfxPy.free_result(stmt)
IfxPy.close(ifx_connection)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52838748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档