python-3.x - 多线程异步s3调用增加了内存python

标签 python-3.x multithreading asynchronous

我有几千个需要上传到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/

相关文章:

java - Android - 实现 AsyncTask 或 Thread 的正确设计

scala - 在 Actor 之外与 Akka Actor 互动

c# - *虚拟*方法缺少 'await' 返回值?

python-3.x - pandas_ml 坏了吗?

python - 显示许多 4x2 绘图

python - 如何转义字符串中的unicode特殊字符并将其写入UTF编码文件

python - 如何将时间间隔分成不同长度的部分?

c++ - 如何使用 pthreads 对类成员函数进行多线程处理?

python - 如何从Python中的多个线程收集数据?

javascript - node.js + socket.io + 结果需要多个数据库调用