今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

高速化と可読性

メソッドを高速化するためのチューニングをする。そうすると、可読性が落ちる。悩ましいトレードオフ。例えばこんなの。
高速化する前のコード。

    while (true) {
        int v1 = getV1();
        int v2 = getV2();
        if (v1 > 0 || v2 > 0) {
            break;
        }
    }

高速化したコード。
高速化する前のコード。getV2()の呼び出し回数が減るけど、多少読みにくくなる。getV1()よりもgetV2()の方が早ければ、順序を入れ替えることでさらに高速化できる。

    while (true) {
        int v1 = getV1();
        if (v1 > 0) {
            break;
        }
        int v2 = getV2();
        if (v2 > 0) {
            break;
        }
    }

ある値を取得するためにコストがかかる場合、一旦取得した値を使いまわそうとすると、さらにややこしくなったりして。