Optimización de Algoritmos: Tiempo y Espacio en JavaScript
Clase 3 de 18 • Curso de Complejidad Algorítmica con JavaScript
Resumen
El espacio y el tiempo son dos conceptos determinantes en la evaluación de un algoritmo. El espacio es la cantidad de memoria que utilizas para resolver un problema. El tiempo consiste en la velocidad que se ejecuta ese algoritmo.
Para encontrar un buen algoritmo podemos ver qué tanto tarda en ejecutarse, o qué tanto espacio ocupa en la memoria.
Tiempo o espacio, ¿cuál es mejor para el desarrollo de un algoritmo?
Lo ideal en una solución, es que el espacio sea lo mínimo posible y el tiempo sea lo más rápido. Sin embargo, esto no siempre se cumple.
Podemos sacrificar uno para dar prioridad al otro. Por ejemplo, usar más memoria para aumentar la velocidad, como ocurre en Chrome. También, podemos reducir la velocidad, pero con un uso de memoria mínimo, como en las aplicaciones Lite (Facebook Lite).
Dependiendo del objetivo de tu aplicación, el buen uso de espacio y tiempo es crucial para el desarrollo de un algoritmo óptimo, tomando en cuenta cada situación o el problema que se quiera resolver.
Rendimiento en dispositivos embebidos
En dispositivos embebidos, el buen manejo de la memoria es crítico, ya que se requiere maximizar el espacio que ocupa, sin importar cuánto dure su procesamiento.
Rendimiento en JavaScript
En particular, en JavaScript es más relevante apuntar más al tiempo, que al espacio. Porque el código JavaScript usualmente no corre en dispositivos con memoria muy limitada (como sí sucede en dispositivos embebidos).
Esto no significa que no haya casos particulares, o que el espacio siempre sea menos importante que el tiempo, solo es el ambiente del software con JavaScript.
Contribución creada por Marcelo Arias y Andrés Guano (Platzi Contributor).