¿Hemos perdido el arte de la optimización pura?
Los ingenieros de la vieja escuela trabajaban con límites minúsculos. La computadora de guía del Apollo tenía solo 2 KB de RAM. Cada bit importaba. Cada ciclo de CPU era vital.
Hoy en día, tenemos gigabytes de memoria. A menudo resolvemos los problemas añadiendo más hardware. Si el código es lento o pesado, añadimos más RAM. Este hábito nos hace perder la habilidad de la optimización pura.
Puedes escribir mejor software pensando en las restricciones.
Observa cómo procesas un archivo de texto grande en Python.
El método habitual: Muchos desarrolladores leen un archivo completo en la memoria de una sola vez.
- Usas
f.readlines(). - Esto carga cada línea en una lista en tu RAM.
- Si tu archivo es de 10 GB, necesitas 10 GB de RAM.
- Este enfoque falla en servidores pequeños o dispositivos limitados.
El método optimizado: Procesa el archivo línea por línea.
- Iteras directamente sobre el objeto del archivo.
- Python lee una línea, la procesa y pasa a la siguiente.
- Tu uso de memoria se mantiene bajo y constante.
- No importa si el archivo es de 1 MB o de 100 GB.
La diferencia radica en la filosofía de ingeniería.
Añadir más recursos es una solución temporal. Crea software frágil. Utilizar las restricciones para guiar tu diseño crea software robusto.
La optimización no se trata solo de velocidad. Se trata de ser consciente de tus recursos.
Cuando escribas código, pregúntate:
- ¿Cuánta memoria utiliza esto?
- ¿Funcionará esto si los datos crecen diez veces más?
- ¿Estoy dependiendo de hardware costoso para ocultar un mal código?
El mejor software proviene de la disciplina.
Fuente: https://dev.to/prabashanadev/have-we-lost-the-art-of-pure-optimization-31b9