为什么文件大小与占用空间相差巨大?

电脑是 surface go,因为内存太小买了一个金士顿的128gtf卡扩容,想着把matlab下载装到tf卡里。 结果发现31g的程序我128g的t…
关注者
14
被浏览
72,334

5 个回答

exFAT 默认簇大小是 128 KiB,1 B ~ 128 KiB 大小的文件占用空间都是 128 KiB,128 KiB + 1 B ~ 256 KiB 大小的文件占用空间都是 256 KiB,256 KiB + 1 B ~ 384 KiB 大小的文件占用空间都是 384 KiB,以此类推。

这么多文件,按平均每个文件浪费 64 KiB 估算,总量高达 43.9 GiB。(实际上文件大小不是随机分布,往往有大量几千字节的小文件,浪费更严重。)

既然都把它当内置存储用了,直接上 NTFS 吧。现在的 μSD 都有磨损均衡,虽然算法不如 SSD,但对于正规产品,NTFS 日志的额外写入对寿命的影响可以忽略。而且 NTFS 不用担心意外断开导致元数据损坏丢文件,可以开更激进的缓存策略,在内置存储这种注定要频繁读写的场合,说不定还能延长一点寿命。

可能内部有稀疏文件

也就是只占用空间,但是没有内容的文件


稀疏文件(Sparse File), 指的是文件中出现大量的0数据,这些数据对我们用处不大,但是却一样的占用我们的空间,针对此,WINNT 3.51中的NTFS文件系统对此进行了优化,那些无用的0字节被用一定的算法压缩起来,使得这些0字节不再占用那么多的空间,在你声明一个很大的稀疏文件时(例如 100GB),这个文件实际上并不需要占用这么大的空间,因为里面大都是无用的0数据,那么,NTFS对稀疏文件的压缩算法可以释放这些无用的0字节空间, 可以说这是对磁盘占用空间以及效率的一种优化,记住,FAT32上并不支持稀疏文件的压缩(至少我在自己机子上测试得出如此结论)。