0

関数が分岐するほど実行が遅くなるので、以下のようなコメントブロックを1回のコード実行(たとえば変数の開始)に使用する方が良いですか、それともこの目的で関数を使用する方が良いですか?どちらがより良い習慣ですか?ある選択肢は他の選択肢と本当に異なりますか?そうでない場合は、なぜですか?

コメントブロック:

/*************************************************************************************************/
/***********************************  VARIABLE INITIATIONS   *************************************/
 /************************************************************************************************/
Hospital **hospitals = new Hospital*[15];
for(int i = 0 ; i < 5 ; i++)
    hospitals[i] = new Hospital(3, i, 15);  //3: quota, i: hospital number, 10:prefereneceLength
Resident **residents = new Resident*[15];
for(int i = 0 ; i < 15 ; i++)
    residents[i] = new Resident(i,5);  //i: hospital number, 10:prefereneceLength
.
.
.

またはイニシエーションの関数:

int main(void) {
    init_vars();
    read_from_files();
    .
    .
    .
4

1 に答える 1

2

私は常に、時期尚早の最適化よりも読みやすさを優先します。

後で関数呼び出しが原因で初期化が遅くなっていることに気付いた場合(そして、最も要求の厳しいシナリオ以外のシナリオがあなたに影響を与えるとは信じられません)、最適化します。

いつものように、パフォーマンスを測定し、ホットスポットを特定します。考えられる問題を事前に特定してそのコードを作成するのは簡単ですが、後でそれがまったく問題ではないことがわかります。その間、あなたはデザインと読みやすさを犠牲にしました。

Knuthが言うように:

小さな効率、たとえば約97%の時間は忘れておく必要があります。時期尚早の最適化は、すべての悪の根源です。

于 2013-03-19T09:52:28.063 に答える