2

プログラムの「妥当な」コンパイル時間を決定するための経験則はありますか? 「合理的」が何を意味するかは明らかに主観的なものですが、すべてが同じであれば、たとえば、コンソール ベースの「Hello, World」のコンパイルに 2 時間もかからないはずです。具体例を挙げると――

C コードのリポジトリ、X 行のコード、gcc 最適化レベル Y の場合、コンパイルにかかる時間を予測する合理的な方法はありますか? また、「妥当な」時間について何か意見はありますか?

明確化

ここで重要なパラメータはコードに依存するだけで、CPU、メモリ、ネットワークに依存するものではありません。

4

2 に答える 2

4

合理的な開発マシン (2+GHz、4+GiB RAM) で合理的なソースから構築された最も合理的なプログラムの場合、単一のソース ファイルをコンパイルするための答えは「数秒」である必要があります。私の経験では、通常、数分の範囲にあるものはすべて問題を示しています。完全なプログラムをコンパイルするのにかかる時間は、コンパイルするファイルの数によって制御されます。20,000 個のファイルをコンパイルするよりも、20,000 個のファイルをコンパイルする方が時間がかかります。実際、約 1,000 倍の長さです。(妥当なソースは通常、ソース ファイルが 10,000 行未満で、ヘッダーが約 1,000 行未満です。どちらのガイドラインにも例外がたくさんあり、どちらの数値もかなり寛大です。)

しかし、それはすべて依存します。ヘッダーがネットワーク ファイル システム上にある場合、ローカル ファイル システム上にある場合よりもコンパイルが遅くなる可能性があります。非常に多くの要因があるため、適切な答えを出すことはほぼ不可能です。

于 2013-07-02T15:09:40.460 に答える
0

ジョナサンの回答で言及されているもの以外のその他の要因は、プログラミング言語、コーディング スタイル、コンパイラ バージョン、pCode またはバイナリ生成などです。

于 2013-07-06T03:24:33.750 に答える