Estoy tratando de medir el tiempo que se tarda en llamar a una función (anulada) en javascript, pero obtengo resultados inesperados y, por lo tanto, debo estar malinterpretando algo fundamental.
He hecho un jsfiddle de juguete para ilustrar mi problema.
https://jsfiddle.net/8hgdzwc5/
function f(){ let iterations = [10, 20, 30, 4000, 50000] let times = [] for(let N of iterations){ let startTime = performance.now(); g(N); let endTime = performance.now() times.push(endTime - startTime) } console.log(times); } function g(N){ for(let i = 0; i < N; ++i){ for(let j = 0; j < 4; ++j){ let x = 0; let y = 1; let z = x/y; let str = "cat"; let str2 = "cat" + "mouse"; } } }Espero que los tiempos de ejecución que mido y guarde en la matriz 'tiempos' aumenten, sin embargo, ejecutar el violín varias veces (espero que esto sea reproducible), parece tomar más tiempo para 4000 iteraciones que 50000 iteraciones. ¿Por qué y cómo puedo medir los tiempos de ejecución de las funciones y hacer inferencias sobre el rendimiento con mayor precisión?