for loop vs forCada desempenho em javascript e credibilidade dos resultados jsperf

Eu não confio nos resultados do jsperf que mede o desempenho de for loop vs forEach. Pelo menos para chrome e firefox na minha máquina, os resultados são completamente diferentes dos anunciados no jsperf.
http: //jsperf.com/foreach-vs-loo (meu
http: //jsben.ch/#/BQhE (mais popular
No meu laptop executando o Ubuntu 11.10, tenho os seguintes resultados no Firefox:

for: total=1641 ms, avg=164.1 ms  
forEach: total=339 ms, avg=33.9 ms  

uname -a:  
Linux 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Infelizmente, o Chrome não retorna o resultado do console.timeEnd (), mas os tempos de execução são os mesmos e apenas mais rápidos no Chrome. Estou observando que cada um é quase 10 vezes mais rápido que o loop for no Chrome e 3 vezes mais rápido no Firefo
No Chrome, estou obtendo aproximadamente os seguintes tempos de execução:

for: avg=80 ms
forEach: avg=6 ms

Aqui está o código que eu corri no Firefox e no console do Chrom

var arr = [];
for(var i = 0; i < 100000; i++) arr[i]=i;

var numberOfRuns = 10;

function time(name, f){
    console.time(name);
    f();
    return console.timeEnd(name);
}

function runTest(name, f){
    var totalTime = 0;
    for(var r = 0; r < numberOfRuns; r++)
        totalTime += time(name,f);
    return totalTime;
}

var forTime = runTest('for', function(){
    for(var j = 0; j < arr.length; j++)
        arr[j];    
});
var forEachTime = runTest('forEach', function(){
    arr.forEach(function(v){v;});
});

console.log('for', {total:forTime, avg:forTime / numberOfRuns});
console.log('forEach', {total:forEachTime, avg:forEachTime / numberOfRuns});

Executar os testes para um milhão de itens tem a mesma diferença de desempenho. Poderia avisar se estou faltando alguma coisa e devo confiar nos resultados do jsperf em vez dos reais que estou observando? É claro que confio nos resultados reais que posso ver aqui e agora no meu navegado

EDIT: O cenário de teste não é objetivo, como foi descoberto durante a discussão com o @Blender. Parece que o otimizador de js optimiza o loop forEach sem ação e, portanto, obscurece o tempo de execução, se houver algum código rea

questionAnswers(6)

yourAnswerToTheQuestion