Números de Latencia que todo programador debería saber
Jeff Dean, de Google, ha publicado en GitHub una list de números de latencia para que los programadores de aplicaciones web tengan una idea de cuánto tarda la computadora en hacer ciertas acciones.
La lista, que se puede consultar en inglés original acá, comienza con una Referencia Caché L1 que tarda 0.5 nanosegundos. Una referencia a la memoria principal tarda 100 ns, mientras que comprimir 1kb con Zippy llega a tardar 3.000 ns.
Por otro lado, otros números de referencia son que enviar 2kb sobre una red de 1 Gbps tarda 20.000 ns, y leer 1MB secuencialmente desde la memoria llega a tardar 250.000 ns, pero leer 1mb secuencialmente desde el disco tarda 20.000.000 ns.
El último ejemplo (y más lento) es el de enviar un paquete de California a Holanda y de vuelta a California, que tarda 150.000.000 ns (ciento cincuenta millones de nanosegundos).
Recordemos que un nanosegundo es una medida de tiempo que equivale a la milmillonésima parte de un segundo, por lo que todas las acciones anteriores no equivalen ni siquiera a una milésima de segundo.
Haría falta ahora la latencia de una búsqueda en una base de datos de latencias para localizar el método compatible que menos latencia tenga.