Además de la velocidad, ¿qué otras medidas de eficiencia se podrían usar en un entorno real?

  1. Consumo de energía: colocar más núcleos en su teléfono móvil para aumentar el rendimiento no es realista a menos que la energía total consumida por el dispositivo permanezca dentro de la restricción preestablecida.
  2. Calidad de servicio: un dispositivo que ejecuta múltiples aplicaciones críticas para la seguridad debe cumplir con los acuerdos de nivel de servicio establecidos por los proveedores de la aplicación. Usar recursos limitados para mejorar injustamente el rendimiento de una aplicación entre muchas no siempre es una opción plausible.
  3. Rendimiento: la cantidad de trabajo realizado en un período de tiempo específico es a veces la mejor métrica para evaluar la eficiencia de algunos dispositivos como GPU, implementados en un centro de datos.
  4. Eficiencia energética: la mayoría de las veces, la compensación por el rendimiento y el consumo de energía es una práctica estándar. Por lo tanto, el rendimiento por vatio es a veces una medida mejor y realista para comparar múltiples dispositivos, en lugar de solo tener en cuenta la velocidad o la potencia.
  5. Seguridad ofrecida: muchas características de protección contra manipulaciones del hardware tienen el costo de un consumo de energía significativo. En el ámbito de los dispositivos IoT de baja potencia implementados en aplicaciones seguras, los diseñadores tienden a intercambiar entre la seguridad ofrecida y las clasificaciones de rendimiento de potencia.

Soy aficionado al costo monetario. Se vincula directamente con las preocupaciones del mundo real. También enfatiza que a veces “lo suficientemente bueno” es todo lo que necesitamos. Esto es difícil porque el costo es a menudo una función escalonada: unos pocos MB adicionales de memoria no son un problema, ¡hasta que tenga que comprar un DIMM completamente nuevo o actualizar toda su máquina! Sin embargo, en la era de Amazon, es más fácil que nunca hacer esta conversión a un costo puramente operativo.

Exactitud. Muchos algoritmos publicados son incorrectos, independientemente del otro beneficio que reclamen. Muchas implementaciones de algoritmos correctos son incorrectas. Más simple es más probable que sea correcto. La testabilidad también juega un papel aquí.

Si bien la “velocidad” y el “tiempo de respuesta” están relacionados, este último suele ser la métrica más apropiada.

La capacidad de paralelizar también es importante en la era actual, donde las CPU se están volviendo “más anchas” en lugar de más rápidas. Ciertamente relacionado con la velocidad, pero no capturado directamente por la complejidad asintótica del tiempo.

Previsibilidad del rendimiento. En un sistema en tiempo real, un algoritmo que ofrece tiempos de ejecución predecibles puede ser preferible a uno que sea más rápido en promedio, pero más lento en casos excepcionales.

Poder. En algunos tipos de entornos integrados, los vatios-segundos / operación pueden ser más importantes que las operaciones / segundo.

Lo que sea que necesites para lograr el objetivo. Dinero, espacio, tiempo, energía, mano de obra, recursos materiales, etc., en comparación con la ganancia que desea obtener. Dependiendo de la disponibilidad relativa de las cosas que necesita, cada vez que algo más puede convertirse en el recurso crítico que determina la eficiencia de lo que hace. La velocidad es una medida de eficiencia si el tiempo es el recurso crítico. No necesariamente tiene que ser el caso si eres Robinson Crusoe, por ejemplo.

  • Uso de memoria
  • Localidad de caché: esto tiene un impacto significativo en la velocidad de ejecución
  • Búsqueda de disco: estos requieren una cantidad significativa de tiempo para los discos duros, razón por la cual las bases de datos usan árboles B y estructuras similares
  • Ancho de banda (para sistemas distribuidos)
  • Cantidad de aleatoriedad consumida (criptografía)

Bueno, si estás hablando de movimiento motorizado, puedes medir el combustible utilizado para hacer un viaje determinado.

Para embarcaciones en un cuerpo de agua que fluye, puede usar la velocidad de flujo del agua ya que afecta su velocidad.

Para el vuelo, hay efectos de velocidad del viento y presión barométrica. Además, la temperatura y la humedad pueden ser factores que afectan la densidad del aire.

“La eficiencia no se trata de la menor cantidad de pasos. Son los pasos correctos en el mejor orden”.