google-chrome - permanently - disable cache while devtools is open
¿Por qué Chrome pierde tiempo "descargando" contenido de la memoria caché? (5)
Estoy sirviendo contenido estático destinado a ser almacenado en caché por el navegador de forma indefinida. Chrome está almacenando en caché como se esperaba, pero todavía está gastando tiempo "descargándolo". Estoy usando Chrome 46.0.2490.71.
Como puede ver, el contenido se sirve desde la memoria caché, pero todavía demora 68 ms para la descarga de contenido. Esto está provocando que las imágenes svg aparezcan en cada carga de página, aunque el archivo esté en caché.
Aquí está la información relevante de la línea de tiempo de una carga de página en modo incógnito:
Los campos "Tiempo total" y "Tiempo del evento" para cada uno de esos eventos son cero. Replicando esto con el archivo servido localmente (pero aún desde el caché) el evento "Recibir datos" solo se ve una vez.
Algunos puntos interesantes a tener en cuenta:
- Servir el mismo archivo desde mi máquina local, con la misma codificación, no produce el mismo retraso de descarga.
- Cambiar al modo de incógnito (sin extensiones) reduce a la mitad el retraso de descarga, pero no lo elimina.
- Es más rápido refrescar la página, ya que parece tomar menos tiempo para recibir una respuesta 304 del servidor que simplemente cargarla desde el caché.
- Cerrar las herramientas de desarrollo no parece tener ningún efecto en la demora.
- IE 11, Edge y Firefox 41 no muestran ningún retraso.
¿Qué causas posibles podría haber?
Así que esto tiene que ver con la forma en que el almacenamiento en caché funciona en Chrome. No tengo experiencia personal con la base de código de Chrome, pero sí sé un poco sobre su teoría. (También encontré una referencia a la implementación de caché de Chrome aquí para los más curiosos: caché de disco de cromo )
Como referencia, aquí hay una captura de pantalla de mi carga de su pregunta real de desbordamiento de pila en Chrome con el panel de red abierto y la opción de limitación de red establecida en "Sin conexión". ¡Observe que cada entrada en esta lista se obtiene de la memoria caché!
También notará que Chrome está gastando tiempo "descargando" cada archivo. ¿Por qué es esto? Bueno, la memoria caché de Chrome es una base de datos, y esa base de datos también está comprimida para ahorrar espacio. Cuando recupera un documento de la memoria caché, el precio de esa recuperación no es cero. Chrome tiene que buscar el elemento en la base de datos de la memoria caché y luego inflar esa entrada en la memoria para que Chrome pueda trabajar con ella. No conozco los detalles exactos sobre cómo el panel Red Chrome-Dev-Tools muestra los tiempos, pero supongo que obtener ese archivo del disco, descomprimirlo y luego analizar y trabajar con el resultado es lo que está viendo. reflejado en "Tiempo descargado".
No puedo comentar por qué otros navegadores no tienen este retraso, ya que no tengo mucha experiencia con ellos. Puede ser que utilicen un método más eficiente para obtener cosas de la memoria caché (posible) o que mantengan la memoria caché en la memoria en todo momento (poco probable) o que omitan algunas de las comprobaciones de integridad de Chrome. está haciendo datos de caché (posible)
Cuando paso el encabezado ("Content-Length: xxx") se carga como 100% más rápido.
Me encontré con el mismo problema. Implementé la funcionalidad de descarga de PDF. Al hacer clic en el enlace de descarga recibí una respuesta en alrededor de 260 ms, pero las descargas comienzan después de 10 segundos en Chrome.
REVISIÓN: analicé que mi sistema de Windows era de 64 bits y Chrome de 32 bits. Después de actualizar Chrome a 64 bits, este problema se resolvió. Encontré resolución en https://bugs.chromium.org/p/chromium/issues/detail?id=103737
Me encontré con un "problema" similar. Sin embargo, el retraso inesperado desapareció una vez que cargué mi página (con sus dependencias "recuperación lenta desde el disco") en una ventana de incógnito con DevTools cerrado. Esto me sugiere que el problema se debió a la interferencia de una extensión de Chrome o de la ventana de DevTools.
Tuve el mismo problema, la descarga desde el caché tomó una eternidad. El problema fue que mi archivo tenía un tamaño de gzip de 410 KB (que ya es enorme). Descomprimido tiene un tamaño de 1,5 GB, por lo que el navegador utilizó tanto tiempo para cargarlo desde la memoria caché y luego descomprimirlo.
Con las últimas herramientas de desarrollo de cromo también puedes ver el tamaño descomprimido: