当前位置: 星座运势 > > 正文
每日焦点!如何加快Unreal编译速度?

来源:哔哩哔哩   2023-04-17 13:14:16


(资料图片仅供参考)

你可能已经在网上看到过一个空格大法了。我个人不信那玩意儿,我觉得那就是纯搞笑的。Windows会把文件在内存中缓存一部分,所以第二次重新编译会比第一次编译快非常非常多。

不过的确有一些我自己使用的方法能很好的提升编译速度。

更好的利用固态

Unreal源码加上PDB文件加上引擎本体,全部塞进固态硬盘对于很多朋友来说是不现实的。我自己构建的Unreal加上中间生成的.obj文件.pch文件等等,总的大小已经超过了300个G了。即使是官方构建的版本,加上pdb文件也足足有100个G。如果固态硬盘空间足够的话,将虚幻引擎直接放固态里自然是极好的。但是如果空间不够的话可以考虑我的做法。

我的做法是将一些需要频繁读取的文件,比如Source/Runtime和Source/Editor两个文件挪动到固态硬盘,然后通过软连接连接回原来的位置,我们知道这两个文件夹中涵盖了绝大部分我们编译时需要用到的头文件,只要保证了这两个文件夹的读取速度就能极大的提升编译性能了。这两个文件夹加起来只有7个G左右,挪到固态硬盘是完全可以接受的。

熟悉Linux的朋友一定对符号链接不陌生。但是很少有人知道Windows其实也有类似的功能。你可以使用mklink来创建符号链接。

使用PCH

Unreal有SharedPCH和自定义PCH两种模式。见Build.cs中PCHUsage和PrivatePCHHeaderFile两个配置项。如果你使用自定义pch,确保你的pch中包含的头文件比较合理。此外不管你采用哪种pch方式,确保你的.pch文件在固态硬盘中。

总结:

总之,如果你有一个足够大的固态,你能解决大部分问题。如果你的固态硬盘不够大。那么需要妥善的安排哪些文件应该放进固态中。

如果你没有固态怎么办?别折磨自己了,搞个固态吧,要么就别用C++了,多用蓝图或者蓝图的等效替代,比如看看这两个项目

https://github.com/nxrighthere/UnrealCLR 使用C#代替蓝图

https://github.com/Tencent/puerts 使用TypeJS代替蓝图