gpt4 book ai didi

python - 在 Python 2.5 中将 Google App Engine blobstore 作为文件写入的正确方法是什么

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:39 25 4
gpt4 key购买 nike

当我尝试对 Google App Engine blobstore 进行简单写入时,我目前超出了软内存限制。编写此代码以使其不泄漏内存的正确方法是什么?

from __future__ import with_statement
from google.appengine.api import files
from google.appengine.api import blobstore
def files_test(limit):
file_name = files.blobstore.create(mime_type='application/octet-stream')
try:
with files.open(file_name, 'a') as f:
for x in range(limit):
f.write("Testing \n")

finally:
files.finalize(file_name)
return files.blobstore.get_blob_key(file_name)

files_test(4000) 产生错误:

在为总共 27 个请求提供服务后,超过了 157.578 MB 的软专用内存限制

最佳答案

不幸的是,python 的垃圾收集器并不完美。您所做的每一次写入都会创建许多小对象(通过 Protocol Buffer 创建),由于某种原因,python 不会即时收集这些对象。我发现在 mapreduce 库中我必须做

import gc
gc.collect()

不时让垃圾收集器开心。

关于python - 在 Python 2.5 中将 Google App Engine blobstore 作为文件写入的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210731/

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