【发布时间】:2021-03-24 13:46:36
【问题描述】:
我认为当将 s3 对象下载到文件中时,它会分块写入,以避免将整个文件加载到内存中。
但显然情况并非如此,这是我的代码:
puts("Memory (before file loaded): #{((`ps -o rss= -p #{Process.pid}`.to_i) / 1024.0).round(2)} MB")
my_s3_object.get(response_target: file_path)
puts("Memory (after file loaded): #{((`ps -o rss= -p #{Process.pid}`.to_i) / 1024.0).round(2)} MB")
输出:
Memory (before file loaded): 191.08 MB
Memory (after file loaded): 259.41 MB
my_s3_object 是 130MB 的 zip 存档。好的,所以它没有完全加载到内存中,但几乎是一半。
有没有办法通过将一些参数传递给get 方法来提高内存使用率?或者我该怎么做?
【问题讨论】:
标签: ruby amazon-web-services amazon-s3