我想知道python hashlib库如何处理稀疏文件。如果文件有很多零块,那么在读取零块时不会浪费CPU和内存,而是进行任何优化,例如扫描inode块映射并只读取已分配的块来计算散列值?
如果它没有这样做,那么最好的方法就是自己做。
PS:不确定在StackOverflow Meta中发布此问题是否合适。
感谢。
答案 0 :(得分:1)
hashlib
模块甚至不能处理文件。你必须读取数据并将块传递给散列对象,所以我不知道为什么你认为它会处理稀疏文件。
I / O层对稀疏文件没有任何特殊处理,但这是OS的工作;如果它知道文件是稀疏的,那么"读"操作不需要进行I / O操作,只需用没有I / O的零填充缓冲区。