gpt4 book ai didi

python - SQLAlchemy 误用导致内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:31 25 4
gpt4 key购买 nike

我的程序每隔几秒就消耗一兆。我读到 python 在垃圾收集中看不到 curors,所以我觉得我在使用 pydbcsqlalchemy 时可能做错了,也许没有关闭某处的东西?

#Set up SQL Connection
def connect():
conn_string = 'DRIVER={FreeTDS};Server=...;Database=...;UID=...;PWD=...'
return pyodbc.connect(conn_string)

metadata = MetaData()
e = create_engine('mssql://', creator=connect)
c = e.connect()
metadata.bind = c
log_table = Table('Log', metadata, autoload=True)

...
atexit.register(cleanup)
#Core Loop
line_c = 0
inserts = []
insert_size = 2000
while True:
#line = sys.stdin.readline()
line = reader.readline()
line_c +=1
m = line_regex.match(line)
if m:
fields = m.groupdict()
...
inserts.append(fields)
if line_c >= insert_size:
c.execute(log_table.insert(), inserts)
line_c = 0
inserts = []

我是否应该将元数据 block 或其中的一部分移动到插入 block 并在每次插入时关闭连接?

编辑:
问:它都稳定了吗? enter image description here

答:只有当你算上 Linux 吹走了进程时:-)(图表确实从内存使用中排除了缓冲区/缓存)

最佳答案

我不一定会责怪 SQLAlchemy。也可能是底层驱动的问题。一般来说,内存泄漏很难检测到。在任何情况下,您都应该在 SQLALchemy 邮件列表上询问核心开发人员 Michael Bayer 几乎每个问题...也许在那里获得真正帮助的更好机会...

关于python - SQLAlchemy 误用导致内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com