中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
楼主: 老非猫

正确认识AA2的机器配置

  [复制链接]
 楼主| 发表于 2010-9-23 10:29:23 | 显示全部楼层
即使把AA2安装到一般的SSD,也还是不能解决HDD碰到的问题,只是好一点。因为一般的SSD读取速度也就200M字节/S,而内存处理速度都是超越1G字节/S,实际字节流量由主板前端总线频率和位宽决定,也是在G级别处理速度。用RAID技术的SSD盘能达到600M/S速度,但还是无法和内存PK,而这样的SSD盘也是天价。如果你是铁杆AA2迷,舍得银子,最好的配机方案是:一个有能支持16G内存以上的主板,配个32G的SSD(几百块钱),4根4G的内存条(频率不一定要那么高,800的都可以,总共价格2000多点,其中3根算是额外支出费用),显卡用5850或460+左右就行了,这样的配置也就额外支出了2000块,等同HDD盘+GTX480或者好牌子HD5870,但跑起来比后者那种欢快的多了。
发表于 2010-9-23 11:27:24 | 显示全部楼层
回复 老非猫 的帖子

首先我觉得有一个地方值得疑问,就是装在Ramdisk的游戏,在运行过程当中,是否就不经过虚拟内存直接就被内存访问了?我很想知道老猫你的SSD里装的XP,是否重新设置了虚拟内存的位置。游戏或者XP系统是否真的这么聪明就绕过硬盘虚拟内存的结构直接从RamDisk读取了。
还有个疑问就是如果ArmA2的数据需要经常从硬盘读取,如果强制增大ArmA2分配的内存空间是否可以同样起到提高游戏执行效率的效果。我刚刚测试了用-maxmem=4096,结果运行效率已经大幅提高。我想既然安装到RamDisk用了12G,如果同样是交给游戏12G内存,那么用-maxmem=12288是不是能起到同样效果?

第三个疑问就是内存的应用效率问题,I7据我所知是三通道内存,所以要么装3条,要么装6条,最好不要两条或四条的装,影响CPU的访问效率。问题是比如像我这样已经配了3x2G内存,再配3x4G的会不会有效率或稳定问题。况且,虽说12G完全分配给ArmA,万一以后Mod增多超过12G怎么办?

最后就是一个就是系统程序装SSD其实不可取,因为SSD寿命现在还不能跟HDD相比,而且SSD一旦损坏某个单元整个儿硬盘的数据都很难恢复。因此windows这种读写频繁的系统恐怕还是不要装在SSD里为好。
发表于 2010-9-23 11:38:57 | 显示全部楼层
msy 发表于 2010-9-23 09:14
关于内存的问题,我看过BIS官方网站的一个帖子,就是在讨论为什么不出64位执行程序的版本,结果好几个BI的程 ...


http://www.bistudio.com/develope ... t-barrier-2_en.html

In the long term, the solution to this will be to move to a 64 bit operating system and to compile the game as a 64 bit application. Such a solution is not realistically possible for ArmA, partly because not enough people use a 64b OS yet, partly because the change is too big and would take too much time and resources.



另外还有一个惊人的小发现
What this brings to ArmA is that the internal file cache, which is sized  between 100 - 500 MB depending on how much RAM you have in your system (or depending on what -maxmem command line argument you use), is now using almost no virtual space at all.
发表于 2010-9-23 12:35:08 | 显示全部楼层
cycle6 发表于 2010-9-23 11:38
http://www.bistudio.com/developers-blog/breaking-the-32-bit-barrier-2_en.html

In the long ter ...

你给的是08年的,我找的是10年的,而且是BIS程序员自己写的。能看看到底说了什么软件方面的东西吗?我不了解这个
发表于 2010-9-23 13:23:53 | 显示全部楼层
msy 发表于 2010-9-23 12:35
你给的是08年的,我找的是10年的,而且是BIS程序员自己写的。能看看到底说了什么软件方面的东西吗?我不了 ...


这两个都是再说ArmA的数据访问方式,这个地址是你给的链接里程序员提供的。他们所说的内容就是,现在64位处理器和系统所支持的寻址范围太大,简单说,32位系统可以给CPU提供1G个地址,涵盖了2G存储量大小的地址,而64位系统提供的空间远远超过了现在我们内存所涉及的大小。粗略算了一下似乎超过T级别都有一千六百多万了。别说内存,我们的硬盘才刚到1~2T。所以64位系统根本没这么多内存可调,要调用就得用虚拟内存。在OFP时代,因为那是后内存很小几百兆而已,所以采用了虚拟内存(就是在硬盘上虚拟标记内存地址假装作为内存空间使用),结果导致了经常出现错误甚至崩溃。因此在ArmA时代计算机内存已经大幅度增加,32位系统用几个G的内存绰绰有余。除非要用到超过这几个G的内存,否则64位系统提供的超大的内存访问范围基本上没有用处。如果用到超过这些内存的空间就要用到虚拟内存就又会重复OFP时代错误和崩溃多的问题。
因此BIS采用的策略是一种叫做Memory with No Address,无地址访问内存。大体概念就是把一些图形、贴图文件直接存在硬盘上,从内存直接访问,从硬盘访问的速度虽然慢,但是避免了系统分配虚拟内存时候出现的错误。

我个人暂时先理解了这么多,很多技术名词的缩写我也不太懂,反正这个技术按BIS说是独创,版权仅有,从理论上也确实给“RamDisk能提高效率”以绝对的支持。不过RamDisk这种做法实在耗费太大,浪费也太大,我暂时还是打算先尝试增加内存,然后用BIS的 -maxmem命令增加内存分配。如果实在不行,我就干脆等电脑继续更新换代了。

PS: 算出来了,32位内存地址范围是4G个,按照内存地址增长是每4位1个内存位算就是1G个位置,按照每个位置存一个word 也就是两个Byte算,内存空间分配总共是2GByte。
64位处理器的内存地址位置是16E=16*(1024^2)T个。不清楚64位内存是否还是4位一增长,如果是的话,就是4E个位置,假设word长度也是2Byte,那么就是8EByte,也就是8*(1024^2)TByte(这得存多少蓝光动作片啊……)。这角度讲,从现有内存和硬盘大小来看32位显得有点紧,但64位则显得超级多余。
发表于 2010-9-23 13:48:28 | 显示全部楼层
等超级硬盘
发表于 2010-9-23 15:53:14 | 显示全部楼层
这样说的话,我理解的意思就是,如果ARMA2变成了64位程序,而且没有采用无地址访问的措施的话,那就是有多少内存他就吃多少内存,一直吃到爆。。。
 楼主| 发表于 2010-9-23 18:04:56 | 显示全部楼层
把一个32位的引擎更换成64位,工作量很大,BIS要考虑这人力费啊。除非AA2能卖的象其他FPS游戏那样火。
发表于 2010-9-24 00:38:42 | 显示全部楼层
cycle6 发表于 2010-9-23 13:23
这两个都是再说ArmA的数据访问方式,这个地址是你给的链接里程序员提供的。他们所说的内容就是,现在64 ...
我个人暂时先理解了这么多,很多技术名词的缩写我也不太懂,反正这个技术按BIS说是独创,版权仅有,从理论上也确实给“RamDisk能提高效率”以绝对的支持。不过RamDisk这种做法实在耗费太大,浪费也太大,我暂时还是打算先尝试增加内存,然后用BIS的 -maxmem命令增加内存分配。如果实在不行,我就干脆等电脑继续更新换代了。

PS: 算出来了,32位内存地址范围是4G个,按照内存地址增长是每4位1个内存位算就是1G个位置,按照每个位置存一个word 也就是两个Byte算,内存空间分配总共是2GByte。
64位处理器的内存地址位置是16E=16*(1024^2)T个。不清楚64位内存是否还是4位一增长,如果是的话,就是4E个位置,假设word长度也是2Byte,那么就是8EByte,也就是8*(1024^2)TByte(这得存多少蓝光动作片啊……)。这角度讲,从现有内存和硬盘大小来看32 位显得有点紧,但64位则显得超级多余。


http://community.bistudio.com/wiki/Arma2:_Startup_Parameters

-maxMem=<number>          Defines memory allocation limit to number (in MegaBytes). 256 is hard-coded minimum (anything lower falls backs to 256). 2047 is hard-coded maximum (anything higher falls back to 2047). Engine uses automatic values (512-1536 MB) w/o maxMem parameter. Yet filecache is excluded from the virtual address limit, always was, see our developers blog here : http://www.bistudio.com/develope ... t-barrier-2_en.html

官方说的很清楚,-maxMem参数已经被硬编码为最小256最大2047的范围,任何超过2047的数值都会被强制还原成2047执行,所以你还不如直接设置成2047,我推荐结合CPU核心参数和多线程参数来提升性能,大家可以试一试效果如何:

以我的4核Q6600处理器+4G内存为例:
  1. -maxMem=2047 -cpuCount=4 -exThreads=7
复制代码
发表于 2010-9-24 01:06:59 | 显示全部楼层
回复 Alex.XP 的帖子

{:4_105:} 这么惨……

加了CPU和线程之后没有什么明显变化,还是不加了。看来RamDisk还是最最有效的方法,除非硬盘市场出现新的优秀产品,但是我认为SSD装系统不太可取。
发表于 2010-9-24 02:17:10 | 显示全部楼层
msy 发表于 2010-9-23 15:53
这样说的话,我理解的意思就是,如果ARMA2变成了64位程序,而且没有采用无地址访问的措施的话,那就是有多少 ...


倒也不是这样,通常的64位游戏也不会占用这么多内存。只不过64位的游戏本身也用不到那么天文数字的内存,就是想用也没有这种天文数字的内存,所以几乎是没有必要。如果想用超过2、3G的内存,一般就要访问硬盘上的虚拟内存,而虚拟内存是系统分配的,很可能出现不稳定的错误。所以从这个角度讲64位提供的庞大地址访问范围没有任何意义。

从另一个角度讲,64位其实可以存储更大的整数或浮点数,但是如果模型制作精度不是超级的高,也没有什么天文数字计算的话,64位提供的高精度浮点数和大存储量整数类型冶没有多大意义。
发表于 2011-10-18 20:01:32 | 显示全部楼层
请问把系统和武装突袭全放到SSD里,提升也不明显吗??
发表于 2011-10-18 20:05:51 | 显示全部楼层
msy 发表于 2010-9-21 16:31
世界上第一个需要内存级传输速度的硬盘才能流畅运行的游戏。。。{:4_106:}

难道SSD达不到这个速度吗?
发表于 2011-10-18 20:09:41 | 显示全部楼层
cycle6 发表于 2010-9-23 04:47
价格的问题先放一边,ArmA2装在Ramdisk里最少需要多少空间,如果加入其它的插件空间不够了怎么办? 另外SSD好 ...

如果只是把AA2装在SSD里呢,访问速度也提升一大截呢.
发表于 2011-10-19 02:32:22 | 显示全部楼层
qevhytpl 发表于 2011-10-18 20:09
如果只是把AA2装在SSD里呢,访问速度也提升一大截呢.

普通SSD不具备这种速度,必须要PCI-E接口的SSD才行,这种SSD价格非常昂贵,甚至相当于整台电脑
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-4-28 07:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表