我刚刚为PNG图像编写了一个自定义压缩算法,它的工作非常精美。但是,磁盘上的大小与#34;之间存在奇怪的差异。标签下的属性。这是一张图片:
我击败PNG大约200%,我只是不知道文件大小显示为何显示如此奇怪的数据。
答案 0 :(得分:7)
磁盘大小是磁盘block size的倍数。简短版本:文件不是作为它们的确切字节数存储在磁盘上,因为文件大小之间的微小差异会使从磁盘读取的过程变得痛苦而且效率低下。相反,磁盘具有块大小(通常为4096字节,尽管这是用户可配置的),并且磁盘上的每个文件都以块而不是字节进行读写。
因此,文件大小是文件数据占用的字节数的度量,但磁盘上的大小是文件由于阻塞而在磁盘上实际占用的字节数。大小在1-4096字节之间的文件将占用一个4096字节的块,因此它在磁盘上的大小为4KB。第二个文件变为4097字节大,它必须使用2个块,它在磁盘上的大小将变为8KB。
0字节磁盘大小的文件是文件表的工件。有关文件的元数据(名称,路径,类型等)存储在文件表中,该文件表占用磁盘的单独部分,不计入文件大小。由于an optimization of the way file tables can store data,某些小文件可能会将其内容与其元数据一起存储在文件表中。这是(据我所知)完全不受你的控制。