2017-05-15 6 views
-7

私はGoでアプリケーションを作成しました。それは12の巨大なファイル、それらの6つのコードの20000行と6つのコードの50000行が含まれています。より小さなコードを持つ他のファイルがあります。大きなファイルは擬似コードから生成されます。 コンパイルしようとしましたが、時間が1時間を超えると完了しませんでした。私はそれを自分でやめた。 今回は開発の邪魔です。 この動作は正常ですか?時間を減らすために私は何ができますか?遅いビルド時間

私のシステムは8GB RAMのI3です

+4

**多くの** ** ** ** **詳細**を提供する必要があります。 20,000行のコードはそれほど多すぎないが、文字列連結の20,000行が問題になる可能性がある。はるかに小さなコードベースを思いつき、ブレークが発生するまで増やしてください。 – Volker

+0

申し訳ありませんが、2つのファイルは315000です。私はそのような大きな文字列を持っていません。 –

+2

アプリケーションで63万行の自動生成コードが必要なのはなぜですか?これは[XY問題](http://xyproblem.info/)のようです。 – ceejayoz

答えて

2

大きなGoプロジェクトは必ずしも問題ではありません。 、これを書いているよう

ジュジュのための主要なレポ、 http://github.com/juju/juju、ゴー コードの54万行と3542個のファイル、(その数には含まれていませんが、コメントの65,000行です。たとえば、Canonicalのジュジュが大きいです)。 標準ライブラリを除くすべての依存関係をカウントすると、Jujuは1,963,000行のGoコード(コメントは含まず、の331,000行のクロック)を保持するファイル9523 です。 Compiler performance with a huge project

3.5 Years, 500k Lines of Go (Part 1)

コンパイル時間は、500未満秒を合理的なようです。

あなたは正確に何をしていますか、なぜですか?なぜあなたはそのような小さなマシンを使用していますか?

+0

私はDSL(疑似コード)ファイルのパーサを作成し、Goコードに変換しました。最初は、私は約3つの巨大なファイルを持っていて、より小さなもの(私は自分自身を作成し​​たもので、解析されたコードの機能、機能を含んでいました)。これらの3つの巨大なファイルで、コンパイル時間は約1〜2分です(インストールに行く)。私が9個の生成されたファイルを追加すると、コンパイラは少なくとも1時間実行され、私のシステムはフリーズします。 –

+0

私はビルドしようとしたときに、コンパイラのシグナルが殺された後に私を返してくれました。 –