¿Hay alguna diferencia de rendimiento entre hacer:
const array = [1, 2]y
const array = [] array.push(1); array.push(2);Creo que este último es más legible. Leí que array.push() es más rápido en algunos navegadores en comparación con hacer array[n] = item, pero no encontré nada sobre la inicialización con el elemento tal cual. ¿Son ambas operaciones O(1)? ¿Hay algún inconveniente en hacer esto último?
El primer método ( const array = [1, 2] ) es más eficaz, ya que hay menos operaciones.
Después de ejecutar un punto de referencia rápido para respaldar esto, ¡parece que el segundo método es un 95% más lento! (basado en aproximadamente 736026 000 operaciones por segundo, en lugar de 27 184 000 operaciones por segundo)
Aquí hay una demostración rudimentaria que muestra cuánto tiempo (en milisegundos) lleva ejecutar cada operación 1 millón de veces.
const NUM_ITTERATIONS = 1000000; // TC 1: Initializing an Array function testCase1() { const array = [1, 2] } // TC 2: Using Array.push() function testCase2() { const array = [] array.push(1); array.push(2); } // Start timer, run given function x time, then end timer const runPerformanceTest = (testCase, msg) => { const startTime = performance.now(); let n = 0; while (n < NUM_ITTERATIONS) { testCase(); n++; } const endTime = performance.now(); const totalTime = endTime - startTime; console.log(`${msg}: ${totalTime} ms`); } // Kick of the test for each function + print results runPerformanceTest(testCase1, 'Test Case 1'); runPerformanceTest(testCase2, 'Test Case 2');Alternativamente, aquí hay un punto de referencia más largo: https://jsbench.me/msl33e4b6k/1