Go 缓慢的构建时间

Go 缓慢的构建时间,go,Go,我已经在Go中创建了一个应用程序。它包含12个大文件,其中6个包含20000行代码,6个包含50000行代码。还有其他代码较小的文件。大文件由伪代码生成。 我试着编译,但时间超过1小时,没有完成。我自己阻止了它。 这一次是豪格的发展。 这种行为正常吗?我能做些什么来减少时间 我的系统是带有8GB RAM的I3大型Go项目不一定是个问题。例如,Canonical的Juju很大: 截至本文撰写之时,Juju的主要回购协议, ,是3542个文件,包含540000行Go 代码(不包括65000行注释)。

我已经在Go中创建了一个应用程序。它包含12个大文件,其中6个包含20000行代码,6个包含50000行代码。还有其他代码较小的文件。大文件由伪代码生成。 我试着编译,但时间超过1小时,没有完成。我自己阻止了它。 这一次是豪格的发展。 这种行为正常吗?我能做些什么来减少时间


我的系统是带有8GB RAM的I3

大型Go项目不一定是个问题。例如,Canonical的Juju很大:

截至本文撰写之时,Juju的主要回购协议, ,是3542个文件,包含540000行Go 代码(不包括65000行注释)。 除了标准库之外的所有依赖项,Juju是9523 文件,包含1963000行Go代码(不包括注释, 该时钟在331000行)

编译时间似乎合理,少于500秒:


你到底在做什么,为什么?你为什么要用这么小的机器?

你必须提供更多的细节。2万行代码本身并不太多,但2万行字符串串联可能是个问题。试着用一个小得多的代码库,增加代码量直到中断。对不起,两个文件是315000。我没有这么大的字符串。为什么你的应用程序需要63万行自动生成的代码?这个应用程序试图解析DSL(伪代码)定义文件并将其翻译成Go代码。我不能为自己编写50000个文件的代码,所以我创建了一个解析器,在goI为DSL(伪代码)文件创建了解析器,并将其翻译为Go代码。起初,我有大约3个大文件和一些小文件(我自己创建的,它们包含解析代码的函数和功能)。对于这3个大文件,编译时间为1-2分钟(去安装)。当我再添加9个生成的文件时,编译器运行了至少一个小时并冻结了我的系统。当我尝试进行构建时,编译器信号消失一段时间后返回我。。