【发布时间】:2023-04-05 19:40:01
【问题描述】:
我是 python 的新手,我需要整天运行脚本。但是,脚本使用的内存随着时间的推移不断增加,直到 python 崩溃......我尝试了一些东西但没有任何效果:(也许我做错了什么我不知道。这是我的代码的样子:
while True:
try:
import functions and modules...
Init_Variables = ...
def a bunch of functions...
def clearall(): #Function to free memory
all = [var for var in globals() if var[0] != "_" and var != gc]
for var in all:
del globals()[var]
print('Cleared !')
gc.collect()
TimeLoop() #Getting out of "try" here because TimeLoop isn't defined anymore
def TimeLoop():
for i in range (1,101):
do stuff...
# Free memory after 100 iterations #############################
clearall()
TimeLoop() # Launches my function when i first start the script
except Exception as e:
print(e)
continue
break
在大约 50.000 次“do stuff...”迭代之后,python 使用了大约 2GB 的 RAM,然后崩溃了 :(
我花了几个小时试图解决这个问题,但似乎没有任何效果。任何帮助将不胜感激! :D
【问题讨论】:
-
很有可能,与其连续运行同一个脚本,不如设置一个cronjob间隔运行脚本。
-
就像运行脚本 X 分钟然后杀死并重新启动它??有点残酷,但应该工作^^'。但是我想找一个更柔和的工作哈哈:)
-
没有。运行脚本,让它完成,然后一分钟后重新运行。
标签:
python
memory-management
crash
out-of-memory
infinite-loop
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在python中释放内存? - Python技术站