javascriptで、ある文字列中にある文字が何個含まれているか調べる方法

いろいろな方法が考えられたので、一番早い方法は何か調べてみることにしました。以下がそのテストコードです。Arrayの要素数は要調整です。
私の環境では一番上がよさそうということになりました。

var str = Array(100).join(Array(100).join("test") + "\n"), result = Array(4);

var d = (new Date).getTime();
str.match(/\n/g).length;
result[0] = (new Date).getTime() - d;

var d = (new Date).getTime();
str.split("\n").length - 1;
result[1] = (new Date).getTime() - d;

var d = (new Date).getTime();
var i = 0, count = function () { ++i;};
str.replace(/\n/g, count);
result[2] = (new Date).getTime() - d;

var d = (new Date).getTime();
str.replace(/[^\n]/g, "").length;
result[3] = (new Date).getTime() - d;

var d = (new Date).getTime();
for (var i = 0, n = 0; i < str.length; ++i)
  if (str[i] === "\n") ++n;
result[4] = (new Date).getTime() - d;

alert(result);