darkness1027 发表于 2012-3-29 00:04

内存问题...滚4能用的内存究竟是如何计算上限的...?

滚4一直有32位系统下内存用到2G必定CTD的弊病,但是64位系统下虽说能破解用到2G以上

但是64位系统下依然用到3.5~3.6G内存就变的不稳定有跳出可能
CriticalSections = {
_comment = CS stuff helps Oblivion, Fallout, and New Vegas significantly
_comment = most of the benefit comes from the Renderer+0x180 suppression (see overrides below)
_comment = modes: 1=vanilla, 2=fair, 3=staggering, 5=suppressed, 6=prioritize-main-thread, 7=deprioritize-main-thread
bEnableProfiling = 0
bEnableMessages = 1
bUseOverrides = 1
iDefaultMode = 2
iDefaultSpin = 1200
iStaggerLevel = 5
OSR这项目设置中我如此设置虽说能用到3.5G内存了,但是还是想问问还有没有办法应该如何设置使内存使用没有限制从而变的更加稳定?

darkness1027 发表于 2012-3-29 00:04

继续自沙...

nbx 发表于 2012-3-29 00:47

你还能用到3.5G?我在2G左右就CTD了

nbx 发表于 2012-3-29 00:54

不过我这边似乎都是CPU过载然后导致的……脚本可能太多了。

darkness1027 发表于 2012-3-29 01:13

nbx 发表于 2012-3-29 00:47 static/image/common/back.gif
你还能用到3.5G?我在2G左右就CTD了

恩...用到2G以上是肯定的...但是必须要64位系统,然后用CFF破解掉Oblivion.exe的2G限制,再安装OSR
CriticalSections = {
_comment = CS stuff helps Oblivion, Fallout, and New Vegas significantly
_comment = most of the benefit comes from the Renderer+0x180 suppression (see overrides below)
_comment = modes: 1=vanilla, 2=fair, 3=staggering, 5=suppressed, 6=prioritize-main-thread, 7=deprioritize-main-thread
bEnableProfiling = 0
bEnableMessages = 1
bUseOverrides = 1
iDefaultMode = 2
iDefaultSpin = 1200
iStaggerLevel = 5
}
Heap = {
_comment = Heap replacement can produce MAJOR improvements in performance on Oblivion at a significant cost in stability
_comment = It crashes instantly on Fallout3, and would only produce a small performance improvement there anyway
_comment = It is not supported at all on Fallout: New Vegas at this time
_comment = Algorithms: 1=FastMM4, 2=Microsoft (slow on XP), 3=SimpleHeap1, 4=TBBMalloc, 5=ThreadHeap2, 6=ThreadHeap3, 8=tcmalloc
_comment = Algorithms numbers 1, 4, and 8 require external DLL files in the Data/OBSE/Plugins/ComponentDLLs folder
iHeapAlgorithm = 5
bEnableProfiling = 0
iHeapSize = 640
bEnableMessages = 0
iGenericFreeDelay = 0
bZeroAllocations = 0
按照这样设置就可以用到超过2G

nbx 发表于 2012-3-29 08:50

会不会和显存有关系,感觉1g显存的显卡只能到那个程度,你的交火后还是2g吧

bluesky404 发表于 2012-3-29 09:02

没碰过你说的那个,因为没看懂说明
不过可以看下这个帖子:http://bbs.3dmgame.com/thread-2537992-1-1.html

58819899 发表于 2012-3-29 11:29

本帖最后由 58819899 于 2012-3-29 11:32 编辑

nbx 发表于 2012-3-29 00:47 static/image/common/back.gif
你还能用到3.5G?我在2G左右就CTD了
32位系统要单个程序内存使用率超过N G要动动手,网上有教程。强烈推荐8G内存,如果你是32位系统可以把认不出的内存做成虚拟内存和虚拟缓存来用。现在内存可是白菜价啊。


复制一段网上的内容


Net 应用程序如何在32位操作系统下申请超过2G的内存2008 年我写过一篇博客叫 《让.Net 应用程序突破2G的内存访问限制》这篇博客主要讲述了如何在32位操作系统下利用AWE 扩展访问超过2G的内存。AWE方式虽然可以访问超过2G的内存,但其本身也有一些问题,首先必须要锁定内存,其次需要自己写内存管理程序来管理这些内存,.net framework 无法在AWE 扩展的内存中创建托管堆。其实很多应用只是想申请比2G稍多一些的内存,最简单的方法还是采用/3GB开关来实现。本文将讲述如何利用 /3GB开关来让32位操作系统下.net 应用程序申请超过2GB的内存。 首先简单说一下这个 /3GB 开关 (知道的可以不看)默认情况下,Windows 可以对总计 4 千兆字节 (GB) 的虚拟地址空间进行寻址。默认情况下,此地址空间中的 2 GB 为内核(操作系统)保留,另外 2 GB 是为用户模式程序保留的。当你将 /3GB 开关放入操作系统的 Boot.ini 文件中时,你就重新分配了虚拟地址空间,给用户模式程序提供 3 GB 的空间,同时将内核限制为 1 GB。设置办法:C:\boot.ini 文件做如下修改:timeout=30default=multi(0)disk(0)rdisk(0)partition(2)\WINNTmulti(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB如下操作系统可以支持 /3GB 开关Windows XP ProfessionalWindows Server 2003Windows Server 2003, Enterprise EditionWindows Server 2003, Datacenter EditionWindows 2000 Advanced ServerWindows 2000 Datacenter ServerWindows NT Server 4.0, Enterprise EditionWindows VISTA , Windows 7 和 Windows server 2008 也支持这个开关 详见http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx 设置完后重新启动系统,这时应用程序就可以申请超过3G的内存了。一切好像到这里就该结束了,然而并非如此。当我运行我在.net framework 下做的测试程序时,我发现3GB开关打开后,这个测试程序依然无法申请超过2G的内存,内存申请到1.5G以上时就无法再分配内存了。查找资料后我发现,操作系统在支持/3GB参数后应用程序也要做相应的修改,告诉操作系统可以按照/3GB方式运行才行,我想这很可能是出于对应用程序兼容性方面的考虑。为了告知操作系统这个应用程序可以支持/3GB方式,我们需要往exe 文件头中添加一个 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志。添加的方式很简单:在你的系统的 Program Files\Microsoft Visual Studio 8\VC\bin 目录下找到 editbin 这个可执行文件,在命令行下执行:editbin /LARGEADDRESSAWARE yourapplication.exe 这里的yourapplication.exe 需要输入的是你的.net 应用程序的路径名加文件名。执行了这条语句后,我再次运行测试程序,内存可以申请到 2.5G了,比2GB模式下多了1G内存可以使用。 最后多罗嗦一句,为什么.net 应用程序在 2GB 情况下只能申请最多 1.4-1.6 GB 的内存?这是因为.net 的垃圾回收器在工作时需要拷贝 live objects,.net framework 需要为它保留一定空间的内存来完成这些拷贝工作。这也是为什么Microsoft 建议asp.net 应用程序内存分配的上限最好设置为800M的原因..net 应用程序如何优化性能,参见下面链接,大家有兴趣可以去看看,这里不再多说了,离主题有点远了。Improving .NET Application Performance and Scalability                                                                                          追问                            1.执行:E:\Program Files\Microsoft Visual Studio 8\VC\bin>editbin /largeaddressware "E:\Program Files\Quest Software\Toad for DB2 Freeware 4.0\Toad.exe"2.显示:EDITBIN : warning LNK4044: 无法识别的选项“/largeaddressware”;已忽略EDITBIN : fatal error LNK1105: 无法关闭文件“E:\Program Files\Quest Software\Toad for DB2 Freeware 4.0\Toad.exe”                                                      

nbx 发表于 2012-3-29 12:16

58819899 发表于 2012-3-29 11:29 static/image/common/back.gif
32位系统要单个程序内存使用率超过N G要动动手,网上有教程。强烈推荐8G内存,如果你是32位系统可以把认不 ...
我CTD的原因和内存占用关系不大,用的战斗系MOD脚本太多,人多远比风景卡……光看风景我的机器没问题的。

58819899 发表于 2012-3-29 13:30

nbx 发表于 2012-3-29 12:16 static/image/common/back.gif
我CTD的原因和内存占用关系不大,用的战斗系MOD脚本太多,人多远比风景卡……光看风景我的机器没问题的。
...

我的宗旨是相同类型的MOD永远只选一个,比如动作MOD和种族MOD,装了一个就不会装其他的 囧,话说我已经抛弃UOP了。加上我把FCOM改成只装OOO,读盘速度和以前比那是飞快 ORZ。

minaselda 发表于 2012-3-29 13:38

我大概也就用到1.8~1.9G内存,游戏文件将近60G了。

nbx 发表于 2012-3-29 14:36

58819899 发表于 2012-3-29 13:30 static/image/common/back.gif
我的宗旨是相同类型的MOD永远只选一个,比如动作MOD和种族MOD,装了一个就不会装其他的 囧,话说我已经抛 ...

我也只装了一个啊,UV2都卸载了……有空把hentaimania合并一下

rage010 发表于 2012-3-29 23:17

不懂编程,但我认为针对32位系统的软件强制进行这样的64位适应性改造是一定会出问题的。

cynicteacher 发表于 2012-3-29 23:47

我昨天才整到2g,毫无疑问的ctd了,这个帖子很及时啊

58819899 发表于 2012-3-30 11:24

本帖最后由 58819899 于 2012-3-30 11:29 编辑

rage010 发表于 2012-3-29 23:17 static/image/common/back.gif
不懂编程,但我认为针对32位系统的软件强制进行这样的64位适应性改造是一定会出问题的。 ...
我玩着一切正常,其实32位系统本来就能支持大容量内存,只不过微软限制了,你网上搜索技术类文章就知道了。

引用网上内容:

理论上,32位环境下每个进程的内存最大寻址空间是4G

-------------------
1、理论上32位系统理论上只能支持最高4G内存吗?
答:看起来是这样没错,但微软已经告诉我们事实并非如此——企业版、数据中心版的Windows分别支持最大32G和64G内存。

oursnetluo 发表于 2012-3-30 12:15

不懂哦,
页: [1]
查看完整版本: 内存问题...滚4能用的内存究竟是如何计算上限的...?