游民星空 > 攻略秘籍 > 攻略 > 正文

上古卷轴5:天际 基础图文教学合集(安装 MOD 画质 跳出 优化 存档)

2014-12-04 11:26:37 来源:3DM论坛 作者:aronchack 我要投稿

第9页:第三章 第1节-减少跳出(2)

展开

  个性化设置:

参数名称

默认值

CK官网说明

译文

补充说明

fUpdateBudgetMS 1.2 This setting controls how much time the main Papyrus update loop gets. This loop mainly controls function dispatch. If a lot of function calls are being made and a lot of scripts are running, increasing this value may improve script performance at the cost of reduced game framerate. However most of the time the VM won't take this entire time slice and increasing the value will have no effect. 此设置控制主要PAPYRUS更新循环时间。这个循环主要控制功能的调度。如果有很多的函数调用和脚本运行,增加这个值可能会提高脚本性能,代价是游戏帧率降低。然而,大多数的时间VM将不会调用整个时间段,增加这个值,将不会有任何影响。 Debug循环时间,只对存在于整个循环的部分代码段生效!建议增大。
fExtraTaskletBudgetMD 1.2 This setting controls how much time taken out of another game thread is taken up by running script tasklets (the code that runs the raw script byte code). This time is on top of the time that the tasklets normally get in their own thread, but because that thread is shared they may end up being starved if other systems are highly stressed. If the game is not stressed, this time will not be used. Increasing this value may improve script performance in high-stress situations at the expense of framerate. 此设置"脚本控制子任务"(这里指脚本源码的编译运行进程)调取另一个游戏线程所花费的时间。此时间优先于所有脚本获得线程的时间。但由于所用线程被共享,所以当其他部分系统资源吃紧时,这些脚本可能会被终止。如果游戏不吃资源,这段时间则不会被调用。增加此数值可以提高系统在资源极度吃紧情况下脚本运行的表现,但代价是游戏帧率会降低。 指上图中的最终编译线程调用游戏其它线程。建议增大提高脚本的编译容错率。以少量帧数来换取游戏稳定是值得的!
fPostLoadUpdateTimeMS 500.0 (on PC), 2000.0 (on Xenon and PS3) This setting controls how much time is added onto the load screen to do additional script processing in case the cell being loaded into needs to set itself up. Adjusting the time will adjust your visible load screen time. Adjust this setting if a cell with very complicated scripting is not getting quite set up in time by the time the player loads. This also may depend on the story manager since quests may not start until the load screen finishes if they are started up right before the player hits a load door. If the quest initial stage has a lot of scripting then it may need the extra time to run before the load screen is pulled down. 
Default: 500.0 (on PC), 2000.0 (on Xenon and PS3)
这项设置控制在进入载入画面时所要额外增加的时间,用以帮助处理额外的脚本,尤其是正在加载的单元需要独立建立此脚本的时候。这项时间的调整将会影响可视载入画面的总时间。如果一个单元内的脚本过于复杂,以致当玩家载入时不能及时建立,那么这项设置最好进行调整。这项内容的变化还同时取决于游戏事件控制器,因为如果玩家在刚好开启一道载入门时开启任务,那么该任务在载入画面结束之后才可能开始,而且在载入画面完全结束前,这些任务不会在后台展开。所以如果该任务的初始阶段有大量脚本要运行,那么载入画面在结束前会需要一些更多的时间来做处理。
默认值:500.0(电脑),2000.0(XBOX和PS3)
建议增大,这样在游戏中进入一个含有大量的脚本代码的房间和地牢时,能足够的时间进行编译!减少因为编译未完成就进行游戏而导致的跳出!
iMinMemoryPageSize 128 This is the smallest amount of memory the VM will allocate for a single stack page, in bytes. Smaller values will waste less memory on small stacks, but larger values will reduce the number of allocations for stacks with many small frames (which improves performance). 这是VM分配到单一分页文件的最小内存量,单位是bytes.这是设置最小内存量。在小型栈区的时候,"较小的值会浪费更少的内存,但较大的值将减少拥有许多小页面的栈区的分配数量(从而提高性能)。 单一栈区的最小内存用量,这里默认是128b,建议适当增大。以适合进行大量计算的脚本代码的变量存储!
iMaxMemoryPageSize 512 This is the largest amount of memory the VM will allocate for a single stack page, in bytes. Smaller values may force the VM to allocate more pages for large stack frames. Larger values may cause the memory allocator to allocate differently, decreasing performance for large stack frames. 这是VM分配到单一分页文件的最大内存量,单位是字节。较小的值,可能会迫使VM分配更多的页面给大的分页文件,较大的值可能会导致内存分配器分配不同的,低效的页面给较大的分页文件。 这个值进行合适的设置,并不是越高越好,过大的值会起到反效果!原因在官方说明中已经进行解释。单一栈区的最大内存用量。
iMaxAllocatedMemoryBytes 76800(76kb) This is the maximum amount of memory the VM will allocate in total for stack frames. If an allocation would push memory usage over this limit, the VM will instead wait for more memory to be freed. Increasing this value may improve performance in high-stress situations with lots of scripts running, but will use more memory. Note that it is possible to exceed this value temporarily while loading a save game due to slightly different allocation ordering. 这是VM分配的总的分页文件的最大的内存量。如果一个已分配的页面将促使内存使用量超过此限制,VM将等待更多的内存被释放。增加该值可以提高运行很多脚本的高压力的情况下的性能,但是会使用更多的内存。值得注意的是,由于加载游戏存档时的分配顺序略有不同,可能会暂时替代这个值。 所有脚本编译时栈区的最大内存用量总和!建议增大,以减少在高压力下,因为等待内存释放而需要的时间!
bEnableLogging 0 This setting turns logging on and off. If off, no logging will occur, even traces, and so it will override the bEnableTrace value. The in-game log display will still work, but nothing will be written to disk. Turning this off may improve performance due to less disk activity.
Default: 0  
  此设置打开或者关闭游戏日志。如果关闭,将不会有日志记录,而且它的值将影响到bEnableTrace的设置。但是游戏中的日记记录功能还是会继续运行,只是不会记录到硬盘。关闭这个功能将提高游戏性能,由于磁盘活动减少。
默认值:0
游戏日志文件LOG的开关。
bEnableTrace 0 This setting turns on and off the script trace commands. System error and warning messages will still be logged to disk. If bEnableLogging is false, this setting is ignored as nothing will be written to disk anyway. Trace commands will NOT be visible in the in-game log display if this setting is off. Turning this off may improve performance due to less disk activity. 此设置打开和关闭脚本跟踪命令。系统错误和警告消息仍然会被记录到磁盘上。如果bEnableLogging是关闭的,这个设置将被忽略,因为反正什么都不会被写入到磁盘。在游戏运行中,如果这个设置是关闭的,跟踪记录在游戏日志中是无法显示。关闭这个选项可能会提高性能,因为磁盘活动减少。 日志文件中是否使用脚本在编译和运行的实时跟踪。Trace是程序员常用的调试手段。使用此命令的前提是bEnableLogging必须为1。
bLoadDebugInformation 0 This setting enables or disables the loading of additional debug information - essentially line number information. If this setting is off, error messages cannot generate line number data. Turning this on will allow line numbers to be available in error traces at the cost of increased memory usage. 此设置启用或禁用加载额外的调试信息 - 基本上是行号信息。如果此设置为关闭,错误消息无法产生行号数据。开启这一功能将允许在错误信息中使用行号信息,代价是增加内存用量。 是否在日志的错误信息中记录出错的脚本代码的行号。使用此设置会加大内存负担,但是便于在日志文件中找到出错的脚本代码!
bEnableProfiling 0 This setting enables or disables the script profiler. If off, none of the script profiling commands will be available. Turn this setting on to allow profiling information to be collected and logged. If on, script performance will degrade slightly.   此设置为启用或禁用脚本分析器。如果关闭,脚本分析命令将不可用。启用此设置将允许分析信息的被收集和记录。如果启用此设置,脚本的性能会略有降低。 启用脚本分析
uTraceStatusOfQuest 0 This setting sets a quest to track for script changes by form ID (converted to decimal). The quest that this setting specifies will spit out a Papyrus stack trace to the log every time a Papyrus script tries to change something with it like starting, stopping, setting a stage, or showing an objective. 设置一个任务来跟踪哪个FORMID(转换为十进制)产生脚本变化。这设置中指出的任务会分出一个Papyrus stack去记录下每次Pupyrus脚本试图改变的某些东西时的变化,如启动,停止,设置一个场景,或显示一个目标。 开发人员使用较多。 一般人基本不会使用到这个,这里不详述。

  那么,我们来根据官方给出的参数解释,我们来点评一下之前那个错误的设置:

[Papyrus]

  iMinMemoryPageSize=100000

  错误1.这个设置必须为2的N次方,便于编译器寻址,100000是2的多少次方?

  错误2.这个值设置太大,会导致每个栈区的空闲空间多,反而会增加寻址时间,之前那几个反例中有个同学提到无限读盘,就是这个原因。

  iMaxMemoryPageSize=5000000

  错误1.官方说明中已经明确指出,这个值设置太大,会导致VM分配出来的栈区是低效的。估计这个“N网大神”没分清楚栈区和内存的区别!

  错误2.一个栈区你就分配500000b/1024/1024=4.76Mb的容量去存那最多1Kb不到的数据?你内存多吃饱撑的?

  iMaxAllocatedMemoryBytes=1800000000

  错误:增大此项,无可厚非,但是这也太大了,会导致栈区不能被及时回收,造成数据冗余,内存溢出!

  1800000000/1024/1024=1716.61Mb=1.7G???内存全用来跑脚本啦?游戏的显示模块,交互模块昨办?

  还记不记得我在上面说过的32位程序最多能调用多大内存?

  在上面的例子中,有一个同学说是引用了N网的设置,我在这很明确的说,那货绝对不是程序员出身,放这种设置出来害人,N网有大神,也有2B!

  引申阅读:什么是堆栈?

  有兴趣的同学可以看看:点击进入

  现在我们来进行正确的设置:

  打开我的文档\My Games\Skyrim目录下的Skyrim.ini

  在[Papyrus]下进行如下修改(没有这些字段的直接添加!)

默认设置,调乱了的同学直接复制下面这段,或者直接删除 推荐设置 说明
[Papyrus]
fUpdateBudgetMS=1.2
fExtraTaskletBudgetMS=1.2
fPostLoadUpdateTimeMS=500.0 
iMinMemoryPageSize=128
iMaxMemoryPageSize=512
iMaxAllocatedMemoryBytes=76800
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
bEnableProfiling=0
[Papyrus]
fUpdateBudgetMS=800(我用2.4)
fExtraTaskletBudgetMS=800(我用2.4) 
fPostLoadUpdateTimeMS=2000
iMinMemoryPageSize=256
iMaxMemoryPageSize=512
iMaxAllocatedMemoryBytes=2457600
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0
bEnableProfiling=0
[Papyrus] 
fUpdateBudgetMS此项可根据实际情况更改
fExtraTaskletBudgetMS此项可根据实际情况更改
fPostLoadUpdateTimeMS建议使用XBOX的设置
iMinMemoryPageSize适当增大为256Bytes,以适应多变量脚本
iMaxMemoryPageSize保持不变,以免编译进程中存在太多的低效栈区!
iMaxAllocatedMemoryBytes2400Kb足矣,以免内存回收不及时,再次吐槽那个1.7G的设置!
bEnableLogging在不需要打开日志文件时为0
bEnableTrace为0
bLoadDebugInformation为0
bLoadDebugInformation为0
bEnableProfiling为0

  这里再说一个误区,是刚才有个同学在回复中问的:

  问所谓的内存清理MOD有没有作用?

  他给了我一个网址,说是从这下的:点击进入

  N网原址:点击进入

  让我们用工具拆开这个MOD来看看代码:

游民星空

游民星空

  这个回复在843楼,大家可以去看看!

  这个什么All_you_need_Skyrim_performance_mod不要再用了,就是一个坑爹货。

  清理内存,我给大家支两招:

  1.在控制台使用PCB命令。

  2.在我的文档\My Games\Skyrim\SkyrimPrefs.ini中的[BackgroundLoad]字段添加以下参数

[BackgroundLoad]

  bSelectivePurgeUnusedOnFastTravel=1

  改这个有点用

  快速旅行时清理不用的内存。

  这样设置,能在脚本编译和运行时稍微增大资源支持。保持游戏稳定。当然,本身就有错误的脚本不在此例,这个我会在后面讲到。

  总结,合理的设置能优化游戏运行,减少CTD,反之,则会起到反效果。

  对于一些盲目相信N网的人,我只能保留意见。

更多相关内容请关注:上古卷轴5:天际专区

责任编辑:Agent

上一页 1 2 3 4 5 6 7 8 9 10 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

游民星空APP
随手浏览游戏攻略
code
攻略合集
单机游戏下载
休闲娱乐
综合热点资讯
游民星空联运游戏