northfun / northfun.github.io

0 stars 0 forks source link

Go为什么编译快(译) #7

Open northfun opened 2 years ago

northfun commented 2 years ago

Why Go compiles so fast Go是最快的编译型语言之一。它比诸如C/C++, Java, Rust等大多数语言编译快。由于Google现有的代码需要消耗数小时的编译时间,缩短编译时间是Google创建Golang最重要的初衷之一。 这里有些Golang编译时间短的原因:

  1. Go不存在循环依赖。我相信这是编译时间短的最重要原因之一。循环依赖在Go中会报编译错误,所以把编译图可视化后不会出现环。这会让Go编译变得简单,只需要从依赖树底部开始递归编译。因为基于无环前提,每个包都可以独立并发编译。
  2. 高效的编译器设计让快速编译无处不在。快速编译是Go最重要的设计目标之一。实现一个编译器是件复杂的事情,这里有非常多的因素影响着编译速度。正因为快速编译是首要目标,所以团队成员尽力去实现它。例如在官方FAQ