5

JavaScript では、次のように現在の日付/時刻を表す数値を取得できます。

var dt = new Date();
var e = dt.getTime();

これを行うための少し短い方法は次のようになります。

var f = (new Date()).getTime();

これを行う最もコンパクトな方法は、次のコードに反映されています。

var g = +new Date;  //11 bytes shorter

(ここで動作しているのを参照してください: http://jsfiddle.net/es4XW/2/ )

さて、Google のフロント ページのソース コードを検索すると、2 番目の規則が 11 回使用されていることがわかります。したがって、Google は毎回 11 バイト (合計 121 バイト) を節約できたようです。

圧縮とキャッシュはこれを緩和する役割を果たしますが、Google がこの単純な切り替えを行うことは確かに価値があります.

これを、3 番目の規則を使用する Amazon のフロント ページ コードと比較対照してください (ただし、すべての場合ではありません)。

では、なぜ Google はこの最適化に関心がないのでしょうか? 121 バイトは私たちのほとんどにとってピーナッツですが、彼らはフロント ページからパフォーマンスの最後のビットを絞り出すことに関心があると思っていたでしょう。

4

1 に答える 1

4

可読性と、したがって限界バイトの節約よりも保守性が高いと言えます。また、最初の 2 つのオプションは将来性がありますが、3 番目のオプションは実装の詳細であり、エンジン (Rhino、Node など) によって変更されるか、動作が異なる可能性があります。

あなたの例の4番目の可能性は、呼び出しを関数にラップすることです:

var now = function() {
    return (new Date().getTime());
}

もちろん、少なくとも数回呼び出すと、数バイトしか節約されません。

于 2012-08-07T09:05:10.673 に答える