どっちが良いんだろうか

var containers = container.childNodes;
for (var i = 0; i < containers.length; ++i) {
  if (containers[i].id.match(/gm_minibuffer/i)) {
    result[containers[i].id] = containers[i];
  }
}
var containers = container.childNodes;
var containers_length = container.childNodes.length;
for (var i = 0; i < containers_length; ++i) {
  if (containers[i].id.match(/gm_minibuffer/i)) {
    result[containers[i].id] = containers[i];
  }
}

毎回毎回containers.lengthを参照するのと、containers_lengthを参照するのとでは、どんぐらいパフォーマンスが違うんだろうか。

さらに追記

まぁ、かなり知られてる話ですが JavaScript は .(ドット) の計算がかなり遅い。まぁ、簡単なスクリプトなら問題にならないが。web2.0的には大違いなのであります。ちなみに、.(ドット) の計算に比較演算の 3 倍のコストがかかる(IEはとくに)。

for 文 2.0(笑) - IT戦記

知りませんでした><
早くこいこいまるごとAjax&&サイ本!!

というと・・・

var containers = container.childNodes;
for (var i = 0; var length = container.childNodes.length; i < length; ++i) {
  var container = containers[i].id;
  if (container.match(/gm_minibuffer/i)) {
    result[container.id] = container;
  }
}

こうか!

さらにさらに追記

HolyGrailさん、助言ありがとうです!

さらにさらに追記

というか、container.childNodesで既にcontainers取ってるワケですから、container.childNodes.lengthで取る必要性は無いですよね><
ソースからコピペして気づかずにエントリ書いてました・・・