Así como el mundo físico tiene recursos escasos que necesitan ser administrados eficientemente (tiempo, dinero, comida, tierra, etc.), también las computadoras tienen recursos limitados. Al escribir un programa de computadora, los recursos que más nos interesan son:
- CPU : este recurso afecta el tiempo que nuestro programa tarda en hacer su trabajo. El uso eficiente de la CPU significa una ejecución más rápida de los programas.
- RAM : estos recursos afectan el espacio que nuestro programa puede usar para hacer su trabajo. Impone una fuerte restricción: tienes suficiente para hacer tu trabajo o no. Si no lo hace, su programa no puede hacer su trabajo. El uso eficiente de la RAM da como resultado programas que pueden hacer su trabajo.
- Disco: almacenamiento físico a largo plazo. Este es un recurso que limita el tiempo y el espacio . Espacio porque solo hay una gran cantidad de él, y una vez que lo usa, su programa se riega. Tiempo porque leer y escribir en el disco lleva tiempo, por lo que los programas eficientes minimizan la cantidad de “aciertos” (lecturas y escrituras) en el disco.
- Red (opcional): no todos los programas son parte de un sistema distribuido, pero si su programa se está comunicando con otra máquina, entonces deberá administrar eficientemente la E / S de su red. Enviar y recibir información a través de una red suele ser muy lento (en relación con el disco o especialmente la RAM), por lo que es otro recurso que limita el tiempo . Los programas eficientes limitan el número de solicitudes de red.
Una implementación eficiente de un programa hace un uso juicioso de estos recursos, en relación con otras implementaciones potenciales de la misma tarea. Por ejemplo, los algoritmos de clasificación eficientes limitan el número de comparaciones entre elementos para reducir el uso de la CPU, o limitan el número de elementos que se ordenan a la vez para reducir la RAM. A menudo, se trata de compensaciones dependiendo de qué recursos son más escasos en su entorno. Pero en algunos casos, hay implementaciones que usan los cuatro recursos mejor que otros, y allí podemos decir fácilmente que una implementación es más eficiente que la otra.
- ¿Dónde puedo encontrar una buena plantilla para probar el software? ¿Usted tiene alguna?
- ¿Cuál es la solución para complicados procesos de construcción en el desarrollo de software?
- ¿Un consultor de software escribe códigos?
- ¿Cuál es el valor agregado de DevOps en las pruebas de software?
- ¿A los programadores les encanta la programación y no les parece aburrida?