# Caché de Windows para PHP

# Introducción

La Extensión de Caché de Windows para PHP es un acelerador de PHP utilizado para incrementar la velocidad de las aplicaciones de PHP que se ejecutan sobre Windows y Windows Server. Una vez que la Extensión de Caché de Windows para PHP está habilitada y cargada por el motor de PHP, las aplicaciones de PHP se podrán aprovechar de la funcionalidad sin ninguna modificación en el código.

La Extensión de Caché de Windows para PHP incluye 5 tipos diferentes de cachés. A continuación se describe el propósito de cada tipo de caché y los beneficios que ofrece.

- Caché de opcodes de PHP - PHP es un motor de procesamiento de scripts que lee un flujo de datos de entrada que contiene texto, instrucciones de PHP, o ambas, y produce otro flujo de datos, generalmente en formato HTML. Esto significa que, en un servidor web, el motor de PHP lee, analiza, compila y ejecuta un script de PHP cada vez que es solicitado por un cliente web. Las operaciones de lectura, análisis y compilación añaden una carga adicional a la CPU del servidor web y del sistema de ficheros y por tanto afectar al rendimiento global de una aplicación web PHP. La caché de bytecodes (opcodes) de PHP se utiliza para almacenar, en memoria compartida, el script de bytecodes ya compilado de manera que pueda ser re-utilizado por el motor de PHP para ejecuciones posteriores del mismo script.

  El soporte para el almacenamiento en caché de opcode fue eliminado en `Wincache 2.0.0`, todos los usuarios que desean tener un opcache debe utilizar la extensión OPcache que se incluye en PHP.

- Caché de Fichero - Incluso con la caché de opcodes de PHP activada, en un sistema de ficheros el motor de PHP, debe acceder a los ficheros de script. Cuando los script de PHP son almacenados en un UNC remoto de compartición de ficheros, las operaciones sobre ficheros introducen una considerable sobrecarga de rendimiento. La Extensión de Caché de Windows para PHP incluye una caché de ficheros que es utilizada para almacenar los contenidos de los ficheros de script de PHP en memoria compartida, lo que reduce la cantidad de operaciones en el sistema de ficheros realizado por el motor de PHP.

- Caché de Resolución de Rutas de Ficheros - Los script de PHP a menudo incluyen u operan con ficheros mediante el uso de rutas relativas. Cada ruta de fichero debe ser normalizada por el motor de PHP a una ruta de fichero absoluta. Cuando una aplicación de PHP emplea muchos ficheros PHP y accede a ellos mediante rutas relativas, el tener que resolver las rutas puede afectar de manera negativa al rendimiento de la aplicación. La Extensión de Caché de Windows para PHP ofrece una caché de Resolución de Rutas de Ficheros, que se emplea para almacenar los mapeos entre las rutas relativas de ficheros y las absolutas, reduciendo por tanto la cantidad de resoluciones de rutas que el motor de PHP tiene que realizar.

- Caché de Usuario (disponible desde la versión 1.1.0) - Los scripts de PHP pueden aprovecharse de la caché de la memoria compartida mediante el uso del API de la caché de usuario. Los objetos PHP y las variables se pueden almacenar en la caché de usuario y ser reutilizadas en posteriores peticiones. Esto se puede emplear para mejorar el rendimiento de los script de PHP y para compartir datos entre múltiples procesos de PHP.

- Gestor de Sesión (disponible desde la versión 1.1.0) - El gestor de sesión WinCache se puede emplear para almacenar los datos de la sesión PHP en la memoria compartida. Esto evita operaciones del sistema de ficheros para leer y escribir datos de sesión, lo que mejora el rendimiento cuando se almacenan grandes cantidades de datos en la sesión de PHP.

- Instalación/Configuración
  - Requerimientos
  - Instalación
  - Configuración en tiempo de ejecución
  - Script de estadísticas WinCache
  - Manejador de sesiones WinCache
  - Redirecciones de funciones WinCache
- Funciones de WinCache
  - wincache_fcache_fileinfo — Extrae información sobre los archivos almacenados en la caché de archivos
  - wincache_fcache_meminfo — Recupera información sobre el uso de memoria caché de ficheros
  - wincache_lock — Obtiene un bloqueo exclusivo en una clave dada
  - wincache_ocache_fileinfo — Extrae información sobre los archivos almacenados en el caché opcode
  - wincache_ocache_meminfo — Extrae información sobre la utilización del caché opcode
  - wincache_refresh_if_changed — Actualiza las entradas del caché para los archivos almacenados en caché
  - wincache_rplist_fileinfo — Recupera información de la caché sobre una ruta de archivo resuelta
  - wincache_rplist_meminfo — Recupera información sobre el uso de la memoria por la caché de ruta de archivo resuelta
  - wincache_scache_info — Recupera información sobre archivos almacenados en el caché de sesión.
  - wincache_scache_meminfo — Recupera información sobre el uso de memoria caché de sesión
  - wincache_ucache_add — Añade una nueva variable al caché de usuario solo si la variable todavía no existe en el cache
  - wincache_ucache_cas — Compara la variable con el valor antiguo y le asigna un nuevo valor a este
  - wincache_ucache_clear — Elimina todo el contenido de la caché del usuario
  - wincache_ucache_dec — Disminuye el valor asociado a la clave
  - wincache_ucache_delete — Elimina las variables de la memoria caché del usuario
  - wincache_ucache_exists — Comprueba si una variable existe en la caché del usuario
  - wincache_ucache_get — Obtiene una variable almacenada en la caché del usuario
  - wincache_ucache_inc — Incrementa el valor asociado a la clave
  - wincache_ucache_info — Recupera información sobre los datos almacenados en la caché del usuario
  - wincache_ucache_meminfo — Recupera información sobre el uso de memoria caché de usuario
  - wincache_ucache_set — Añade una variable a la caché de usuario y sobrescribe la variable si ya existe en la caché
  - wincache_unlock — Libera un bloqueo exclusivo sobre una clave dada
- Compilación en Windows
  - Prerrequisitos
  - Compilar y construir
  - Verificar la compilación

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open