最高指挥官跳出错误完美解决(去官网论坛看了半天蚂蚁文)

终于明白是为什么了,原来尽管XP、VISTA等早已支持32GB、64GB等等牛B容量的内存,但虚拟内存容量却仍然维持在最大2GB的限制上。我的机器内存2G,开大图1VS2AI时单位一旦过500,占用内存就会超过1.5GB,但系统显然不会让你的所有内存被占满,于是用到虚拟内存。但这时其实最高指挥官占用的虚拟内存已经接近2GB了,也就是说,最高指挥官实际上占用的虚拟内存比物理内存还要多。
官网上那个家伙,开了81*81的大图,1VS7AI,结果才十分钟就CRASH了,在这之前他看过内存占用情况,占用物理内存1.6GB,而占用虚拟内存达2.08GB,几秒钟后切回去就崩溃了。

微软对此有个解决方案:
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx

那个家伙对此开出了几个解决方案:
For Vista:
Vista 32 bit (not x64) needs to run this command instead of the XP boot.ini change mentioned in the readme.txt.
At a command prompt:
[table=90%][tr][td]Code:[/td][/tr][tr][td]BCDEDIT /set increaseuserva 2900[/td][/tr][/table]
The readme.txt has the rest of the directions that should be applied in reference to the image header.
Vista x64 doesn’t need the bcdedit, just run the startme.bat I supply as mentioned in the readme.

X64 OS:
A 64 bit OS is also limited to 2GB for user-mode virtual application space for a single process until the Large_Address_Aware header is in place in the executable. So on x64 run the startme.bat batch file, that is all you need to do for x64 to allow SupCom to use >2GB and up to 4GB on x64. (MSDN reference)

An Additional Note: (5-26-07)
Lately, some have been trying to check their memory usage in Task Manager after a crash to see if this is the cause of their crashes. This will not work for two reasons.
You will not be able to accurately and reliably identify SupCom’s address space or any memory usage AFTER a crash, as certain threads may have been killed. Besides that, and more importantly, Windows Task Manager does not even have the ability to show you the memory metric of virtual address space set aside for that process, which is what this focus is about. A unit count in SupCom can be used as a very rough guideline, that if their is about 2300 units in a large map (give or take), that is the memory ceiling crash limit without this

以上系统我没用过,也不清楚到底怎么做,但我所关心的XP系统下的解决方案他没细说,看了微软网站半天后我才发现解决之道非常简单,在启动盘下的BOOT.INI文件中加一个参数即可

举例:
文件原来的命令行:
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft Windows XP Professional”
。。。

在上述最后一行末尾加上参数“/3GB”

修改后如下:

[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft Windows XP Professional”/3GB
。。。

重启后生效

另外,请不要在一些优化软件或“我的电脑”右键占属性的高级选项中限定虚拟内存的大小,如果要限定,请把上限提高到3072M以上。

测试后感觉非常好,前几日经常不定时跳出的单位数下现在能稳定地跑上一二个小时,一点事儿也没有。用了这方法,腰不酸了,腿不疼了,吃嘛嘛香!

技术帖,一定要顶。

我的感想就是,最指的硬件需求超越了硬件的发展水平,结果连软件系统的发展水平也超越了……:L

sc又搞了个超前的产物出来

:L 好技术……

您还真能找到原因啊!佩服!

嗯,我的虚拟内存都是系统指定大小,一般应用根本不需要虚拟内存

我是以前优化系统时限定了虚拟内存的大小,想2G物理内存总够那些程序折腾了吧?谁知泰勒搞了这么个怪物出来…:Q

真没想到,怪物啊。
原来如此,我也看来要去改一下,虽然最近几天没跳出过。

从来不敢不敢玩大地图:lol

昨天打塞族第6关,天上40个飞机在飞时,400人口还没做满时,游戏突然失去响应,看内存,
占用内存和虚拟内存,都是800多M。

不知道怎么搞的,后面只好把飞机停飞,普通兵只造了30来个,死光了就没造了,用蜘蛛过的关,8个一起冲,没谁顶得住。可以做核弹时,开始造核弹,还没造完,给打光了。
占领黑日后不知道还有没任务,反正 万古 还先被灭掉。

停止响应跟内存无关,应该是CPU处理不过来,如果是内存选址溢出的话,应该是直接跳出或崩溃……

CPU处理不过,有点不像.
我的配置是
CPU AMD 速龙 3000+ AM2
主板 华擎 AM2NF6G-VSTA 集成 6100 显卡
内存 1.5G,

昨天打 万古 的第二关,机器净化 那一关,接到最后二个任务,灭掉上面二个基地时,狂卡,桢速掉到只剩2.X,最惨是只有0.1的速度,那时也没停止响应啊。比较奇怪。

停止响应,我觉得是陷入的程序某个死循环,无法跳出来,造成的失去响应。

我从来没有碰到过,最多就是对大量单位同时下指令时会稍稍顿一顿。

以前的各个版本,打过几百场战斗,没有出现过一次问题,升级到3251后,第一场是打了一会死机,第二场打到半截程序退出,晕,这么不稳定。

按说的方法做了,好了一点,可以打一小时左右了,然后死机,一小时中出现过两次假死机,死8秒左右又好了,最后一次是彻底死机。

我的机器内存 2G,虚拟内存改成了 6 G,按要求执行了 BCDEDIT 那个命令,出错的时候显示该程序只占有了物理内存 500多M,系统的虚拟内存也只占有了 1.4G 。
无标题.jpg

昨天晚上,又出现上次一样的情况,突然间狂卡,没失去响应。再次郁闷一回。

虽然我的机子打起来比较慢:( ,能玩就算不错了。:slight_smile:

等有钱时去换显示器,加块显卡。这个游戏,就适宜的就是大屏幕玩,小屏幕看都看累了。

好象不能解决问题.
整体达到4g内存(虚拟+物理)还是要跳出.
有别的解决方法吗?

哭:‘( :’( :‘( :’( :cry:
4G物理内存+4G~8G虚拟内存,+楼主的WinXp /3GB 或 Vista BCDEDIT /set increaseuserva 2900

依旧毫不犹豫的往外跳。真是郁闷死拉!

估计还是内存占用的问题造成的。
引擎是强大的,但操作系统的限制却没办法。

马上放暑假了,又不能玩游戏了。:cry:

最指支持64位吗?
64位下的性能怎么样有用过的吗?
64位下还存在跳出的问题吗?
最指有没支持awe?