本帖最后由 凤凰院凶真 于 2013-5-27 20:03 编辑  
 
应该在游戏刚启动的时候给游戏分配一个更大的栈空间才对,这个版本在启动游戏的时候分配的栈空间太小,如果分配的空间占游戏整体效果所占内存空间的60%以上(适当)的话,那么处理器就不需要频繁地在硬盘和内存中互相调度数据。这个过程很费时间,也很耗CUP的利用率。 
我们知道,设计者不可能会将游戏的内存设计成电脑的最大内存,这样一旦运行游戏,随着游戏时间游戏会占掉整个电脑的内存,所以一般会设定一个阀值,游戏所占的内存容量最大不会越过这个阀值。但其实游戏本身往往需要的内存远远大于这个阀值数,这就需要在运行的时候采用页面调度算法,在规定的内存空间中将不经常或者最早使用的数据调回硬盘上,然后将现在程序运行所需要的数据调到内存。win7的页面调度算法比起奔腾已经高级很多很多了,可以不考虑是页面调度算法上出了问题。win7必然会自动采用认为是最好的页面调度来进行替换。但这个阀值设计得太小的话(至于为什么会设计小,也许开发者考虑到现在计算机中cup的运算速度非常快,想尽可能的利用cup而节省内存),win7为了运行每一步指令而达到游戏效果,也只好在这狭小的空间中不断进行页面调出和调入。这个过程不会显示在游戏画面上,只会让游戏运行产生延时,让玩家看了就是非常卡的效果。  
这也就解释了为什么配置要求上要求用I7的处理器,因为I7可以同时运行8个线程,而I3只能同时运行4个,效率上根本达不到I7的速度,所以页面调度也会慢很多。 可以询问神主和他的游戏开发公司在游戏内存分配上哪一块是不是不够合理,比如 数据内存分配太少?又或者进程内存分配太少?(或者释放内存的方式上有问题),适当改变就会让这种卡的现象消失。 
 
 
 |