gpt4 book ai didi

python - 使用大量内存的简单 Python 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:08 24 4
gpt4 key购买 nike

我正在编写一个非常简单的脚本来读取一个相当大的文件(3M 行,1.1G 文件),其中包含多项式的乱码 (str) 表达式。然后我使用 Sympy 进行一些符号计算并将结果写入 16 个单独的文件。

我的脚本在运行时占用越来越多的内存空间 (> 20 Gb),我不明白为什么。您认为有什么方法可以提高该脚本的内存使用率吗?

from sympy import sympify
from sympy.abc import x,y
from sympy import degree

fin = open("out_poly","r")
A = fin.readlines()
fin.close()
deg = 4
fou = [open("coeff_x"+str(i)+"y"+str(k),"w") for i in range(deg+1) for k in range(deg+1-i)]

for line in A:
expr = line.replace("^","**").replace("x0","x").replace("x1","y")
exprsy = sympify(expr)
cpt = 0
for i in range(deg+1):
for k in range(deg+1-i):
fou[cpt].write(str(exprsy.coeff(x,i).coeff(y,k))+"\n")
cpt = cpt+1

for files in fou:
files.close()

最佳答案

找到了!罪魁祸首是……Sympy!

Sympy 缓存表达式并填充内存。该问题也可以通过设置环境变量 SYMPY_NO_CACHE=no 来解决,但它会严重影响 Sympy 性能。更好的选择是导入以下 Sympy 扩展:

from sympy.core.cache import *

并以适当的时间间隔清除代码中的缓存:

clear_cache()

在我的代码中的每次迭代中使用这些命令,内存使用量稳定且恒定,仅为 26 Mo。

有关问题的链接:http://code.google.com/p/sympy/issues/detail?id=3222

有关 Sympy 缓存的链接:https://github.com/sympy/sympy/wiki/faq

感谢大家的帮助。

关于python - 使用大量内存的简单 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786838/

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