这个是硬盘空间分配算法造成的结果。我尽量口语化来说。每次硬盘要写入文件的时候都要给文件分配空间,这时就要从空闲的空间中分一块出来。当删除文件的时候又要把空出来的空间重新标记成空闲空间待以后再分配。但是硬盘空间不可能要求只能删除最后写入的文件,所以就出现空闲空间呈现断续状态,也就是空闲空间和使用中的空间相互交叉。这时新写入的文件有可能分到的是一块以前用过的空间,这时就有可能出现一个问题——曾经的文件释放了101KB空间,但是新的文件只要100KB空间就可以,结果就是这里出现了一块大小只有1KB的空间,而这个空间因为太小将很难被分配给新的文件,这就出现了磁盘“碎片”。而实际上硬盘分配算法会将大量的小碎片一起分配给一个文件,这个文件就必须记录自己的数据都被分在哪些碎片上,当你读取这个文件的时候也就必须一个个去找这些小碎片,结果就是硬盘读写速度严重减慢,因为大量的时间浪费在了找碎片的过程中……
这样应该可以大概说明磁盘碎片的概念和产生了吧?
至于虚拟内存,因为虚拟内存实际上就是作为一个文件不断的在硬盘中进行读写,如果大小固定,那么就不需要在硬盘中不断重复的分配和回收空间,前面已经说过,硬盘碎片的产生就是在空间的分配、回收与再分配的过程中出现的,这样自然就可以减少碎片的产生。 |