MD4 es una función hash; procesa mensajes de entrada que son secuencias de bits de longitud arbitraria. El tiempo de procesamiento es aproximadamente proporcional a la longitud de entrada, pero al iniciar y finalizar la invocación de una función hash implica una sobrecarga fija, en parte debido al algoritmo (inicialización, relleno ...), en parte a la idiosincrasia de CPU (cachés, predicción de rama ...).
Su primera línea dice que OpenSSL calculó un hash completo en mensajes de 16 bytes, y lo hizo de nuevo, y nuevamente ... hasta un total de 9063888 veces en un período de tiempo de 3.0 segundos. Esto implica un ancho de banda de hashing de aproximadamente 48.34 MB / s (eso es 16 por 9063888, dividido por 3.0). La última línea, por otro lado, dice lo que sucede cuando OpenSSL hashesea (repetidamente) mensajes de 8192 bytes: puede hacerlo 275679 veces en 3.0 segundos, para un ancho de banda total de hash de 752.8 MB / s, más de 15 veces más. Esto ilustra que la sobrecarga de iniciar / finalizar la invocación de la función hash domina el costo de cálculo cuando se trata de mensajes pequeños. La última línea está, por otro lado, cerca del ancho de banda que se puede lograr al procesar una entrada muy larga.
Tenga en cuenta que los puntos de referencia se miden principalmente a sí mismos. Si en realidad tuvieras muchos bytes de entrada, por ejemplo. Uno o dos archivos muy grandes, tendría que tener en cuenta el tiempo necesario para mover los datos, en particular al leerlos desde el disco o la red. El banco de pruebas OpenSSL, por construcción, se juega completamente dentro de la memoria caché L1 de la CPU, lo que a menudo no es realista.