我对优化内存效率程序有点新意,所以这看起来有点简陋:如果我打算在zip中添加数百个文件(可能是100mb +),哪种方法可以更好地保持系统资源的可用性? (并且为了捕捉)
下面的zip_queue变量是全局文件列表。
我目前的方法:
with zipfile.ZipFile(zip_name, "a", compression=zipfile.ZIP_DEFLATED) as myzip:
for file in zip_queue:
myzip.write(file)
或者这样:
for file in zip_queue:
with zipfile.ZipFile(zip_name, "a", compression=zipfile.ZIP_DEFLATED) as myzip:
myzip.write(file)
我猜测后者会在每次附加文件时刷新内存,但是每次打开和关闭zip都需要更多的内存成本而不是简单地保持文件打开?
谢谢!
答案 0 :(得分:1)
我是第一种方式,只是为了避免一遍又一遍地关闭并重新打开相同的输出文件。我怀疑每个方法确切使用多少内存的细节,如果这些细节非常重要,那么你需要用Python之外的其他东西编写代码。
作为一般规则,文件访问速度比内存慢,所以除非你遇到可以证明的实际问题,否则我不会担心内存使用情况。