Cache Review

Una herramienta de desarrollo que ayuda a los desarrolladores a revisar y analizar cómo funcionan el Internal Page Cache (IPC) y el Dynamic Page Cache (DPC) de Drupal, proporcionando indicadores visuales y páginas de demostración.

cache_review
10 sites
47
drupal.org

Overview

Cache Review proporciona herramientas completas para ayudar a los desarrolladores de Drupal a comprender y analizar los mecanismos de caché del Internal Page Cache (IPC, para usuarios anónimos) y Dynamic Page Cache (DPC, para todos los usuarios). El módulo marca visualmente cada elemento de la página con indicadores de estado de caché (C para cached, L para lazy-built, N para sin propiedades de caché específicas), facilitando la identificación de qué partes de una página están siendo cacheadas y cómo.

El módulo muestra un panel fijo "Page Cache Status" en la parte inferior de cada página que muestra información en tiempo real sobre el estado de hit/miss de caché, condiciones de auto-placeholder y metadatos detallados de caché para cada elemento. Al pasar el cursor sobre los marcadores de caché, los desarrolladores pueden ver los contextos de caché exactos, etiquetas y configuraciones de max-age aplicadas a cada elemento de renderizado.

Además, Cache Review proporciona varias páginas de demostración que muestran diferentes escenarios y comportamientos de caché, permitiendo a los desarrolladores experimentar con configuraciones de caché y observar los resultados inmediatamente. Esto es particularmente útil para aprender cómo funciona el cache bubbling, cuándo se utilizan los lazy builders y cómo los diferentes contextos de caché afectan la cacheabilidad de la página.

Nota: Este módulo está destinado únicamente para entornos de desarrollo y no debe usarse en producción.

Features

  • Indicadores visuales de estado de caché en elementos de página: C (cached), L (lazy-built), N (sin propiedades de caché)
  • Panel fijo Page Cache Status que muestra el estado de hit/miss de IPC/DPC, auto_placeholder_conditions y estado del módulo Big Pipe
  • Visualización de metadatos detallados de caché (contexts, tags, max-age) en tooltip al pasar el cursor
  • Múltiples páginas de demostración que muestran diferentes escenarios y comportamientos de caché
  • Opciones de enmarcado configurables para mostrar todos los elementos, solo elementos lazy-built, solo elementos cached, o desactivar el enmarcado completamente
  • Opción para analizar información de caché en páginas de administración
  • Se pueden especificar atributos ID HTML personalizados para análisis de caché específico
  • Plugins de Block que demuestran patrones de caché con lazy builder y sin lazy builder
  • Decoradores de servicio que envuelven el render cache y renderer de Drupal para inyectar visualización de caché

Use Cases

Aprender el sistema de caché de Drupal

Los desarrolladores nuevos de Drupal pueden usar las páginas de demostración en /cache-review para comprender cómo las diferentes configuraciones de caché afectan la cacheabilidad de la página. Cada página de demostración muestra elementos con varias configuraciones de caché (max-age, contexts, tags, keys) y su comportamiento de caché resultante.

Depurar problemas de caché

Cuando una página muestra inesperadamente contenido obsoleto o no se cachea correctamente, los desarrolladores pueden habilitar Cache Review para ver qué elementos tienen configuraciones de caché problemáticas. Los marcadores 'N' con estilo en negrita indican elementos cuyas propiedades de caché coinciden con auto_placeholder_conditions, potencialmente causando problemas de cache bubbling.

Optimizar el rendimiento de renderizado

Al identificar qué elementos están cacheados (C), lazy-built (L) o sin cachear (N), los desarrolladores pueden tomar decisiones informadas sobre dónde agregar cache keys, ajustar valores de max-age o implementar lazy builders para mejorar el rendimiento de la página.

Comprender lazy builders y placeholders

Las páginas de demostración muestran cómo #lazy_builder, #create_placeholder y auto-placeholdering funcionan juntos. Los desarrolladores pueden ver cuándo Drupal crea automáticamente placeholders basándose en auto_placeholder_conditions y cómo esto afecta la cacheabilidad general de la página.

Probar invalidación de caché

Al observar los valores de tiempo mostrados en los elementos de las páginas de demostración, los desarrolladores pueden verificar que las cache tags están funcionando correctamente. Los elementos del caché muestran marcas de tiempo más antiguas, mientras que los elementos recién renderizados muestran la hora actual.

Tips

  • Use la consola del navegador para ver metadatos detallados de caché de los elementos cuando necesite más información de la que muestran los tooltips
  • Experimente modificando las configuraciones de caché en el controlador (CacheReviewController.php) y observando los cambios visuales en las páginas de demostración
  • Preste atención a los elementos marcados con indicadores C o N en negrita - estos tienen propiedades de caché que coinciden con auto_placeholder_conditions y pueden afectar la cacheabilidad de la página
  • Al depurar, comience con el modo 'Enmarcar todos los elementos' para obtener una imagen completa, luego reduzca usando 'Enmarcar solo elementos cached' o 'Enmarcar solo elementos lazy built'
  • Recuerde que IPC (Internal Page Cache) solo afecta a usuarios anónimos, mientras que DPC (Dynamic Page Cache) afecta a todos los usuarios
  • El tiempo mostrado en cada elemento ayuda a identificar contenido cacheado vs fresco - los elementos cacheados muestran marcas de tiempo más antiguas

Technical Details

Admin Pages 1
Configuración de Cache Review /admin/config/cache-review

Configura cómo Cache Review muestra la información de caché en las páginas. Controla qué elementos se enmarcan con indicadores de caché y si las páginas de administración deben analizarse.

Hooks 2
hook_preprocess_html

Adjunta la librería cache_review a todas las páginas para habilitar CSS y JavaScript de visualización de caché.

hook_help

Proporciona texto de ayuda para el módulo Cache Review en la página de ayuda, explicando cómo usar la visualización de estado de caché y las páginas de demostración.

Troubleshooting 4
El panel Page Cache Status no aparece

Verifique que el módulo esté habilitado y compruebe que no está en una ruta de administración (a menos que 'Verificar información de caché en páginas de administración' esté habilitado). También asegúrese de que los recursos JS/CSS se están cargando correctamente.

Todos los elementos muestran marcadores 'N' (sin propiedades de caché)

Esto típicamente significa que los elementos carecen de cache keys. Solo los elementos con #cache['keys'] definidas pueden cachearse por separado. Verifique si los render arrays incluyen metadatos de caché apropiados.

La página siempre muestra MISS para DPC

Busque elementos con contextos de caché como 'user' o 'session' que impiden el cacheo de página. Estos idealmente deberían estar envueltos en lazy builders. La página de demostración en /cache-review/uncacheable-lazy-keys demuestra este escenario.

Los marcadores de caché no son visibles en páginas de administración

Por defecto, las rutas de administración están excluidas. Vaya a /admin/config/cache-review y habilite 'Verificar información de caché en páginas de administración' para analizar páginas de administración.

Security Notes 3
  • Este módulo está destinado únicamente para entornos de desarrollo - no lo use en producción ya que expone metadatos internos de caché
  • El módulo decora servicios del núcleo lo que puede impactar el rendimiento - desactívelo cuando no esté depurando activamente
  • Los tooltips de información de caché pueden revelar detalles de implementación que no deberían exponerse a los usuarios finales