2016-11-04 65 views
0

我想知道python hashlib库如何处理稀疏文件。如果文件有很多零块,那么不是在读取零块时浪费CPU和内存,而是执行任何优化,比如扫描inode块映射并只读取分配的块来计算散列值?Python hashlib和稀疏文件

如果它没有这样做,最好的办法是自己做什么。

PS:不确定在StackOverflow Meta中发布此问题是否合适。

谢谢。

+1

如果您将备用文件复制到不支持稀疏文件的不同文件系统(或具有不同的块大小,以便省略不同的块集合),您是否真的希望它具有不同的散列? – jasonharper

回答

1

hashlib模块甚至不能使用文件。你必须读取数据并将块传递给哈希对象,所以我不知道为什么你认为它会处理稀疏文件。

I/O层对稀疏文件没有特别的作用,但这是操作系统的工作;如果它知道文件是稀疏的,那么“读取”操作不需要执行I/O操作,它只需用零填充缓冲区,而不需要I/O。

+0

感谢您的澄清.. – CodeWithPride