Sal*_*gar 0 c++ linux performance disk
这两种情况之间的速度是否存在明显差异?
场景1:我有一个大小为1024字节的文件,每个字节都填充0.我打开文件,用fwrite写入1024字节的1s.
场景2:我有一个大小为512字节的文件,每个字节都填充0.我打开文件,用fwrite写入1024字节的1s.
显然我最终得到了相同的文件,但在调整磁盘上的第二个文件时是否有任何损失?
我正在尝试确定在使用它们之前调整文件大小是否有任何价值.奖励指向任何能够向我展示一些Linux文档以证明这一点的人.
这自然是特定于文件系统的.但是你可以非常肯定增长文件比写入预先分配的文件更昂贵,因为增长它涉及文件系统inode分配,而写入预分配的inode却没有.
这个差异究竟有多大取决于文件系统,以及你使用它的准确程度.我想在某些情况下它可能是有意义的.
要考虑的另一个问题是碎片化.如果您的文件位于磁盘上的连续块(或几个大块)上,您将获得更好的读/写性能.预分配文件将为您提供更好的机会,使其更少碎片化.