Estoy trabajando en js para comparar el rendimiento de la fuerza bruta O(n^2) y Barnes-Hut O(nlog(n))
En mi código ahora mismo estoy haciendo lo mismo con los mismos datos cinco veces
como esto:
let data = [arrays of 100 data]; let count = 5; while(count>0){ count--; console.time('brute force time' + iterationCount); brute force function() console.timeEnd('brute force time' + iterationCount); console.time('BH time' + iterationCount ); Barnes Hut algorithm(); console.timeEnd('BH time' + iterationCount); } }Aunque el código es el mismo para cada vez, console.time muestra resultados diferentes y preocupantes.
En el tiempo, la diferencia entre BH y fuerza bruta no es relativamente similar en múltiples iteraciones. y no es predecible cuando ejecuto el código cada vez.
Una cosa más a tener en cuenta es que cada vez que ejecuto el código, en la primera iteración, la fuerza bruta y el tiempo del algoritmo de Barnes Hut son casi similares, mientras que después de la primera muestra que Barnes-Hut es mucho mejor.
PD: ¡todo en ambas funciones está dentro del alcance de cada función, es decir, variable local y comparte los mismos datos en cada iteración, por lo que en cada iteración el código es idéntico!
¿alguien puede ayudarme a entender por qué me estoy poniendo así?
Supongo que estos tiempos son tan pequeños que el ruido aleatorio afecta los resultados: tal vez su máquina esté haciendo otro procesamiento. Aumentaría el tamaño de los datos y, por lo tanto, el tiempo de procesamiento; tal vez entonces vería resultados más consistentes.