发布网友 发布时间:2022-04-23 05:01
共1个回答
热心网友 时间:2023-07-05 07:23
其实不是很复杂。虽然程序很大,但并不是所有的东西都要载入内存,也并不是同时载入内存的。
这样说吧,其实就是个状态切换、控制权的切换和资源切换的问题。
当你打开电脑,进入windows,系统初始化完成后,电脑处于一个状态:等待你做操作。
当你点击魔兽世界的快捷键的时候,操作系统根据你的操作找到对应的可执行文件,将那个可执行文件载入系统内存。然后开始运行这个程序(注意每一个可执行文件都是按照某种操作系统规定的格式写的。)。在这个时候,我们用非专业的话来说,实际上电脑的控制权就交给了这个可执行程序。那么这个可执行程序比如魔兽世界程序就开始控制电脑进行一些游戏的初始化工作,比如运行游戏引擎,读取登陆界面所需的图片资源载入内存等等。
魔兽世界初始化完成后,电脑又处于一个状态:等待你做操作。
你输入账号密码点击按钮登陆游戏的时候,程序将你输入的东东加密通过网络传到服务器进行验证,服务器会回传一些数据回来,程序接收到这些数据后,验证了你的身份等级地图等信息后,开始读取一些你电脑上的文件,更新游戏引擎状态,向内存载入地图,绘制,向内存载入音乐,播放等等。在这个时刻,之前载入的登录界面所需的图片资源和声音等等就可以从内存中清除掉了。然后就是你操作,程序接收到你的操作,进行相应的处理,每次你切换场景的时候,之前场景用到的一些内存资源就可以被释放了,这样你在玩的过程中,就只用得到当前用到的那些内存了,基本就是这个样子了。
不管怎样,在同一时刻,必须驻留在内存中的只有你当时所在的地图资源音乐资源和必须的游戏引擎等等。这样说不知道请不清楚。有问题就补充吧。