为什么 Envoy 编译需要这么长时间?

Envoy 编译需要大量计算资源的原因有很多

  • C++ 代码,特别是带有模板的 C++ 代码,编译速度很慢。

  • Envoy 测试使用 gmock,它大量使用模板,因此编译速度非常慢。

  • Envoy 代码量和扩展数量持续快速增长,加剧了这个问题。

我们希望 Envoy 的编译速度更快,特别是我们知道它会阻碍偶尔的贡献,但不幸的是,这个问题没有简单答案。在找到更好的解决方案之前(例如,将一些扩展从主仓库中分离出来、预编译头文件等),我们建议使用功能强大的机器进行 Envoy 开发。最佳方法是

  • 使用云端虚拟机以及像 vscode 远程开发这样的工具。拥有 36 个以上核心和每个核心约 2 GiB 的内存,仍然可以让整个源代码树在合理的时间内构建和测试。

  • 如果使用云端机器,请确保在本地临时 SSD 上构建,而不是在远程块存储(如 EBS)上构建。构建涉及大量的磁盘访问,如果不用快速的本地驱动器,构建将成为磁盘绑定。