当一个程序大于计算机内存时,计算机是如何运行的?

nicole4


这种情况基本都会提示你内存不足无法运行,当然某些情况下系统会自动调用虚拟内存。虚拟内存默认由系统控制大小,使用硬盘的空间来作为虚拟的内存使用,已缓解内存不足带来的问题。为什么说是缓解而不是解决,那是因为硬盘的速度远比内存要慢得多,如果物理内存不够,使用虚拟内存的时候回造成系统软件运行卡顿,无法获得良好的使用体验。

系统设置的虚拟内存一般比较小,当你需要更多内存的时候,可以手动去调节大小来适应需要。

在“高级系统设置”里面点击“性能”选项里面的“设置”按钮

再点击“高级”选项卡,在“虚拟内存”选项中点击“更改”

点击有剩余空间的硬盘,再点击“自定义大小”,输入框中填入你想设置的空间,然后点击“设置”,最后“确定”即可


Vade


这个问题有点意思,大于电脑内存的程序有很多,但是主程序exe文件我就没见过大于内存的,一个游戏客户端有20GB,电脑在运行它的时候,不一定把它全部装进去,一般只装主程序exe,当要用到其他资源的时候。就把那个资源文件装进去,通过指针访问或修改,处理完了肯定是要释放的(消除)。

解析exe文件,你会发现它的里面有16个表,其中有导入表,导出表,资源表……等等,它们里边就是存放着需要用到的文件信息,比如文件名,内存偏移图标,菜单……等,

大文件一般都是一个文件包压缩出来的,既然是压缩的说明它里面是由若干个小文件合成的,要读取它只需要转到想读取数据的偏移处就行了,像单一的大文件只有媒体文件了,mp4,mkv等,这些文件都是有码率信息的,播放器根据码率信息一次读取多少数据。

如果是20GB的大型txt文件,用自带记事本打开它肯定是要卡死的,使用二进制分页读取就解决了,

说真的如果真有exe大于电脑内存的,我也不知道会怎样,


小嘟嘟熊


程序其实包括很多~库文件了~资源文件等~

一般由一个主程序文件统一调入使用!电脑在运行一个程序时会把主程序和需要马上用到的链接资源等文件调入内存使用!其他的其实还在硬盘中~随着使用过程中的需要而动态加载!并不是一股脑的全进入内存!这也是程序设计中需要注意的问题!这样子不但节约内存并且可以使程序更快的运行起来:因为需要的少调入内存的速度就快~当然等待运行的时间就少!



如果多个程序同时需要运行!操作系统还有一种机制叫做虚拟内存!它可以在硬盘空闲位置模拟一块内存空间~如果运行程序超过内存容量~就把暂时不用的在后台的程序从内存中转移到虚拟内存中~需要用到时再进行调入内存的操作!这也是为什么有的老旧电脑内存只有2g甚至1g~在切换任务时很慢的原因了!


分享到:


相關文章: