中年|Oculus优化减少UE4开发迭代时间( 二 )


请注意 , FASTBuild端口不应公开到公共网络 , 因为任何可以连接到它的人都可以运行任意命令 , 而这可能会带来安全性风险 。
2.2 使用说明

下载FASTBuild并以%PATH%将二进制文件解压缩到文件夹中 。 在远程windows计算机运行FBuildWorker.exe. 系统可能会提示你允许它通过Windows防火墙 。 打开后 , 你可以调整idle设置和要使用的cpu内核数 。 如FASTBUILD Network Distribution文档所述 , 通过FASTBUILD_BROKERAGE_PATH环境变量设置worker discovery 。 如果网络共享不可用 , 可以改为在FASTBUILD_workers环境变量中硬编码remote worker主机名或IP地址 , 用分号分隔 。 如果两者都可用 , 在UE4中Incredibuild优于FASTBuild , 所以你可能需要卸载前者才能使用FASTBuild 。 如果distribution不能正常工作 , 你可以使用FASTBuild的故障排除文档 。 如果需要 , 你可以使用另一个开源项目FASTBuild Dashboard来可视化版本 。
支持平台的代码编译现在应该能够生成FASTBuild配置文件 , 并将任务分发到remote worker 。
2.3 实现细节
这个实现基于开源项目Unreal_FASTBuild , 并经修改以用于更新的MSVC工具链和支持clang 。

现在会处理Unreal编译操作并确定要为FASTBuild生成的正确编译器工具链 , 并重写任何命令行参数以匹配FASTBuild要求 。 所有未编译的操作将在本地机器运行 , 如生成预编译的头文件 , 链接库 , 或生成最终的二进制文件 。 所述操作非常复杂 , 难以一般性支持转换为FASTBuild格式 , 并且无法从distribution或缓存中获益 。 由于FASTBuild不支持一个操作的多个输出 , 所以只有在生成过程完成后才能从FASTBuild报告文件中收集编译依赖项信息 , 这意味着如果在过程中取消生成 , 则不会保存相关结果 。
另外 , FASTBuild内置了对代码编译的缓存支持 , 如果所有输入都匹配完整的文件路径和chesksum , 则可以从缓存中检索对象文件 。 请注意 , 由于需要预处理所有编译单元以收集输入文件 , 所以不建议启用FASTBuild编译 , 除非至少有一个remote worker已启用 。
2.4 结果
测试在IntelXeon W-2135处理器(3.70Ghz 12线程)运行 。 计时包括所有预处理、预编译头文件生成、代码编译和链接 。


推荐阅读