我在 SCSI USB 连接的 SSD 上存储了大量文件,大小在 1 到 50KB 之间。allocation unit size
格式化时最好选择什么exFAT
?
我想知道读/写速度最快的是哪个。我正在考虑 64K,虽然 32K 似乎更好。我希望有人能帮我找出最明智的做法!
答案1
我们可以使用ExFAT 规范推导出一个公式,告诉我们给定用途的最佳分配大小。
假设我们讨论的是大小为五,以分配大小(簇大小)格式化C我们打算存储平均大小的文件年代(所有数字均以字节为单位。)
所有 FAT 文件系统(包括 ExFAT)都存储 2 份 FAT(文件分配表)副本,每份副本包含的条目数与磁盘上的簇数相同,每项占用 4 个字节。这是主要来源,因此,专用于(浪费)2 份 FAT 的空间约为:
此外,每个文件平均会浪费半个簇,所以我们需要知道磁盘上能容纳多少个文件。分配 2 个 FAT 副本后,剩余空间中可容纳的平均大小为 S 的文件数量大约等于:
因此,浪费的空间总量或文件系统开销等于:
最佳簇大小对应于最小浪费空间,因此我们计算 W 关于 C 的偏导数:
并求解零点的导数,保留正数答案:
令人惊讶的是(或不是*),最佳簇大小并不取决于卷的大小,而仅取决于文件的平均大小。
如果你可以预测将存储在设备上的文件的平均大小(只需取一个包含类似数据的现有目录,并将其大小除以其包含的文件数量),你就可以取平均文件大小的平方根并乘以 4以获得 ExFAT 驱动器的最佳簇大小。
(*) 仔细想想,这个结果是有道理的。如果你将卷加倍,同时保持簇大小不变,那么分配给 FAT 的空间和分配给文件的空间都会加倍。因此,浪费空间与使用空间的比率保持不变。
答案2
经过一些测试(感谢朋友)我得到了以下结果:
将其格式化并将exFAT
分配大小设置为:
- 默认值:磁盘大小为 5.8GB
- 8192:磁盘大小为 4.26GB
- 16K:磁盘上的大小为4.47GB
因此得出结论:当谈到小文件和 Android 项目相关文件时,8192(〜8K)显然获胜。