虚拟内存与磁盘碎片

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:26:30
有观点误认为Windows系统频繁读写pagefile.sys就会产生磁盘碎片,实则不然。因为pagefile.sys文件一旦创立,在分区中的分布连续形式就固定下来,文件内部读写并不增加或减少pagefile.sys的文件大小。仅当页面文件告罄后系统创建的temppf.sys会带来磁盘碎片。
_______________上面这段话咋理解啊.原本我是以为虚拟内存在磁盘上的分布不是固定的,上面有说是固定的.大家帮我理解理解!

可以这么来理解,系统管理的虚拟内存页面交换文件pagefile.sys 创建以后有多大是不确定的,大小在最小值和最大值之间,开始没有大型程序运行分配的就小一些,有大型程序运行,内存不够用了,再扩大,到最大值以后还不够用,就会提示虚拟内存太低,要扩充虚拟内存。
这样,由于硬盘在使用中随时有存储和删除文件,虚拟内存文件所占用的区域内可能是不连续的存储空间,这样就会造成有碎片存在。
如果把最小值和最大值设置相同,这样虚拟内存占用的空间是固定的。但是由于磁盘的读写和删除原因,仍然可能是开辟的空间是不连续的。
如果把磁盘另外的分区比如D盘先进行碎片整理,再把虚拟内存移动到D盘上,这样就会占用一个连续的存储空间。然后再把C盘进行碎片整理,再移回来也是一个连续的空间区域。
这样就是因为pagefile.sys文件一旦创立,在分区中的分布连续形式就固定下来,文件内部读写并不增加或减少pagefile.sys的文件大小。

比如你设置新建一个文本文档
由于他是新的所以很小
你第一天在上面写东西
就会在磁盘上占点位置
之后你又去下游戏
又占了一些位置
第二天你继续写东西
两天的东西就不是连续的了
这样就产生碎片

但是虚拟类存就不一样了
假如你设置1GB的
虚拟内存文件在创建之初就是1GB
里面都是空白内容
当要往里面写东西时
就把空白内容替换成有用的文件
这样到头来还是1GB
大小没变 位置没变
也就不会产生碎片了

好累

你可以把虚拟内存的最大值和最小值设为相同,这样就能够避免它产生磁盘碎片。但如果最大值和最小值并不相同,它仍是要产生磁盘碎片的。