为什么 Envoy 编译需要这么长时间?
Envoy 编译需要大量计算资源的原因有很多
C++ 代码,特别是带有模板的 C++ 代码,编译速度很慢。
Envoy 测试使用 gmock,它大量使用模板,因此编译速度非常慢。
Envoy 代码量和扩展数量持续快速增长,加剧了这个问题。
我们希望 Envoy 的编译速度更快,特别是我们知道它会阻碍偶尔的贡献,但不幸的是,这个问题没有简单答案。在找到更好的解决方案之前(例如,将一些扩展从主仓库中分离出来、预编译头文件等),我们建议使用功能强大的机器进行 Envoy 开发。最佳方法是
使用云端虚拟机以及像 vscode 远程开发这样的工具。拥有 36 个以上核心和每个核心约 2 GiB 的内存,仍然可以让整个源代码树在合理的时间内构建和测试。
如果使用云端机器,请确保在本地临时 SSD 上构建,而不是在远程块存储(如 EBS)上构建。构建涉及大量的磁盘访问,如果不用快速的本地驱动器,构建将成为磁盘绑定。