windows操作系统知识探索——文件实际大小与占用空间大小不同的原因
如果硬盘簇的大小为4kb,则一个6kb的文件需要占用多少硬盘的空间
按默认的4096即可。 1、4096就是4K(1024*4)。这样分就是4K对齐。 2、固态硬盘,一定要做4K对齐,不然性能和寿命都有大幅度的缩水。 3、机械硬盘,可以对齐,也可以不对齐,不影响。对齐后会有轻微的性能提升。 “4K对齐”就是符合“4K扇区”定义格式化过的硬盘,并且按照“4K扇区”的规则写入数据。那么如果有“4K对齐”一说必然就有“4K对不齐”。“4K”对不齐是因为在NTFS6.x以前的规范中,数据的写入点正好会介于在两个4K扇区的之间,也就是说即使是写入最小量的数据,也会使用到两个4K扇区,显然这样对写入速度和读取速度都会造成很大的影响。为此对于“4K不对齐”的情况来说,一定要修改成“4K对齐”才行,否则对于固态硬盘来说,不但会极大的降低数据写入和读取速度,还会造成固态硬盘不必要的写入次数。
1.“文件大小”与“所占空间”的差别
为了便于大家理解,我们先来看两个例子:
例1:找到D盘上的Ersave2.dat文件,用鼠标右键单击该文件,选择“属性”,即可打开对话框,我们可以看到,Ersave2.dat的实际大小为655,628 Byte(字节),但它所占用的空间却为688,128 Byte,两者整整相差了32KB。
例2:同样是该文件,如果将它复制到A盘,你会发现该文件实际大小和所占空间基本一致,同为640KB,但字节数稍有差别。再将它复制到C盘,查看其属性后,你会惊奇地发现它的大小和所占空间的差别又不相同了!
显然,在这三种情况中,文件的实际大小没有变化,但在不同的磁盘上它所占的空间却都有变化。事实上,只要我们理解了文件在磁盘上的存储机制后,就不难理解上述的三种情况了。文件的大小其实就是文件内容实际具有的字节数,它以Byte为衡量单位,只要文件内容和格式不发生变化,文件大小就不会发生变化。但文件在磁盘上的所占空间却不是以Byte为衡量单位的,它最小的计量单位是“簇(Cluster)”。
小知识:什么是簇?
微软操作系统(DOS、WINDOWS等)中磁盘文件存储管理的最小单位叫做“簇”,数据存储在硬盘的时候都是以簇为单位,所以无论文件大小是多少,除非正好是簇大小的倍数,否则文件所占用的最后一个簇或多或少都会产生一些剩余的空间,且这些空间又不能给其它文件使用,即使这个文件只有0字节,也不允许两个文件或两个以上的文件共用一个簇,不然会造成数据混乱。为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件实际所占用的物理空间大小,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。
2.分区格式与簇大小
在例2中,同一个文件在不同磁盘分区上所占的空间不一样大小,这是由于不同磁盘簇的大小不一样导致的。簇的大小主要由磁盘的分区格式和容量大小来决定。笔者的软盘采用FAT分区,容量1.44MB,簇大小为512 Byte(一个扇区);C盘采用FAT 32分区,容量为4.87GB,簇大小为8KB;D盘采用FAT 32分区,容量为32.3GB,簇大小为32KB。计算文件所占空间时,可以用如下公式:
簇数=取整(文件大小/簇大小)+1,所占空间=簇数×磁盘簇大小
公式中文件大小和簇大小应以Byte为单位,否则可能会产生误差。如果要以KB为单位,将字节数除以1024即可。利用上述的计算公式,可以计算ersave2.dat文件的实际占用空间。
3.轻松查看簇大小
①用Chkdsk查看簇大小
在Windows操作系统中,我们可以使用Chkdsk命令查看硬盘分区的簇大小。例如我们要在Windows XP下查看C盘的簇大小,可以单击“开始→运行”,键入“CMD”后回车,再键入“C:”后回车,然后输入“Chkdsk”后回车,稍候片刻从它的分析结 果中,我们就可以得到C盘的簇大小,不过它把簇称之为“分配单元”或者“Allocation unit”。

②用PQ Magic等磁盘工具来检测
很多磁盘工具都具备磁盘信息显示等功能。例如在PQ Magic中,选择要查看的磁盘分区,然后单击右键选择“高级→调整簇大小”功能,即可从显示的对话框中可以看到该磁盘当前设置的簇大小。

③手工查看
手动创建一个100字节以下的文本文档。然后将该文件复制到欲查看簇大小的磁盘分区中,在Windows下显示该文件的属性,其中“所占空间”处显示的数值就是簇大小。
以下说明一下文件大小和占用空间大小不同的相关解释:
首先说明一下,文件的大小和其所占用的空间存在一定的差异是肯定的,这个现象起始的原因就是因为系统的文件和索引,为了方面系统更便捷的管理文件,操作系统使用文件系统对各种文件进行管理(文件系统就是我们经常说的FAT32和NTFS等),文件系统将硬盘分为很多个“簇”。
以FAT32文件系统为例,fat32文件系统的簇大小是4KB。当我们要存储一个1KB的文件,那么它将占用4KB的空间,要存储2KB的文件,所占用的文件大小也是4KB,而要存储2个2KB大小的文件时,其所占用的空间就为8KB。以此类推。
所以,当我们存储非常多的小文件的时候,其所占用的空间就越大,但很可能其实际的文件大小却很小,也就是这个道理。同理,一个文件越大,其占用的空间也就越小。
说简单一点,拿仓库做比方,我们有100个仓库,为了好管理和查找,我们可能会把各种不同的物品分别放入不同的仓库,但是这个物品很可能不能填满仓库,那么它仍然也是占用了仓库的所有空间的。那么可能有人问了,为什么不把这个仓库多放东西,好节约空间,但是这样的话很可能你找很久久没有办法找到你所要的东西,其性能就非常低了。同理文件存储也是这个道理。

浙公网安备 33010602011771号