我有几千个需要上传到s3的文件,它们在for循环中运行,带有带有 future 的多线程线程池执行器,该执行器提交给执行器任务以将其放入s3中,并等待最终完成。
而有另一个线程在处理该数据之前会进行其他一些数据处理。
在这段时间内,由于循环中的文件导致内存压力,我的内存消耗正在增加。我正在将文件作为字节读取到内存中,以创建用于重复数据删除的哈希。
有没有什么办法可以减少内存消耗之类的。
最佳答案
I am reading the files into memory as bytes to create a hash...
Use a buffer并分块读取:
import hashlib
sha1 = hashlib.sha1()
with open(filename,'rb') as f:
while chunk := f.read(128*sha1.block_size):
sha1.update(chunk)
print(sha1.digest())
关于python-3.x - 多线程异步s3调用增加了内存python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61357742/