缓存递归目录遍历用法:当你启动游戏时,会弹出一个窗口询问是否要生成缓存。如果你尚未生成缓存或安装了新的模组,需要点击“是”并让CRDW生成缓存。下次启动游戏时,你可以点击“否”来跳过缓存生成。
基准测试:配置:Ryzen 1600,16GB DDR4,1TB NVME SSD,Windows 10系统,使用MO2。
我的模组化天际实例包含409,811个散文件,其中269,315个是音频文件。
为了基准测试,我分别在有和没有CRDW的情况下启动了十次游戏。
在开始测量之前,我只启动了一次游戏,让Windows预热自身的缓存,以降低各次运行之间的差异。
无CRDW时,平均时间为:3分38秒,误差±2秒
采用CRDW缓存:36秒,误差±10秒
你应当从这些结果中得出的结论是:如果你有大量散文件,尤其是音频文件,启动时间可能会显著缩短。就我而言,音频文件占我全部文件的66%,因为我使用了像DBVO这样的模组,它们添加了大量散落的音频文件。这些文件在引擎中的注册开销是其他文件的两倍。
Mo2和Vortex用户可能会在结果上出现差异,因为Mo2在引擎运行遍历期间会对部分Win API调用增加可测量的额外开销。因此,Mo2用户应比Vortex用户获得更大的收益。
如果你的散文件不多,CRDW并不是什么神奇的解决方案,这个mod对你不会有任何作用。
正在安装CRDW:像安装其他模组一样,使用模组管理器进行安装。
手动安装只需将CRDW.dll和CRDW.ini放入Data\SKSE\Plugins文件夹即可
CRDW的工作原理:运行《天际》时,游戏会遍历下面列出的目录,并注册其中的所有文件。
CRDW 挂钩负责目录遍历的函数,并将结果(文件路径和大小)保存到 .cache 文件中。
下次天际启动时,CRDW将打开缓存并直接读取缓存中的行走结果给天际,跳过行走过程。
天际省在行走过程中也会执行一次声音文件注册。这次声音文件注册会对文件进行单独的查询,而CDRW同样能加速这一过程。
游戏开始前,天际遍历的目录:
Data\Textures
Data\Meshes
数据\界面
数据\音乐
数据\声音
Data\Scripts
Data\Strings
数据\草地
此模组不会缓存对ESP、ESM、ESL、BSA和BA2文件的查找。
INI设置:INI使用类型化语法
类型以b、i、s开头
b(布尔值) true, false
i(整数)64位有符号数
s(string) 文本值
选项:ShowPopUp(布尔值):
启用或禁用游戏开始时的弹窗。
模式(字符串):
如果ShowPopUp为false,则使用该值来决定CRDW模式。
选项包括CACHE、LOAD、ACCELERATE、NATIVE。
CACHE 生成 CRDW 缓存文件。
加载 CRDW 缓存文件。
加速模式禁用缓存,但使用CRDW遍历器而非原生方式。
NATIVE 会禁用该插件。
记录(布尔值):
完全启用或禁用日志记录。如果日志记录为false,则不会生成日志文件。
调试(布尔值):
启用每次写入时的日志强制刷新。若崩溃(CTD)时使用。
启用更详细的日志记录,可能会减慢启动速度。
LogFlush(整数):
设置日志级别,使日志立即刷新。
若已启用调试,则此项为冗余。
CacheDirectory(string):
设置生成/加载缓存文件的目录。
在路径中使用 / 而不是 \
IOBuffer(整数):
控制缓存生成缓冲区的大小。为避免过多的磁盘写入,缓存条目会先写入IOBuffer,当缓冲区满或遍历结束后才转储到磁盘,从而加快缓存生成速度。机械硬盘用户可尝试增大此值以观察是否提升缓存生成速度。固态硬盘用户应保留默认值。
实验(布尔值):
启用一项实验性微优化,可略微加快缓存加载速度。
请提供需要翻译的文本内容。Github shoutouts:Po3 CommonLibSSE