remove - Optimización del sitio web de PHP
strip_tags wordpress (5)
Jan e idm tienen razón, pero esta es la forma de:
El almacenamiento en caché (páginas o contenidos) es crucial para el rendimiento. Las llamadas mínimas que solicita a la base de datos o al sistema de archivos es mejor ya sea que su contenido sea estático o dinámico.
Puede usar un acelerador de PHP si necesita ejecutar contenido dinámico:
Mi recomendación es usar Alternative PHP Cache (APC)
Aquí hay algunos puntos de referencia:
¿Cuál es el mejor acelerador PHP para usar?
Aceleradores de PHP: APC vs Zend vs XCache con Zend Framework
Lighttpd - Parámetros de aceleración de PHP
Para el almacenamiento en caché de contenido e incluso páginas, puede usar: Memcached o Redis .
Memcached: sistema de almacenamiento en caché de objetos de memoria distribuida, de alto rendimiento y de fuente abierta, gratuita y de código abierto, de naturaleza genérica, pero destinado a agilizar las aplicaciones web dinámicas aliviando la carga de la base de datos. Memcached es un almacén de valores-clave en memoria para pequeños fragmentos de datos arbitrarios (cadenas, objetos) a partir de resultados de llamadas a bases de datos, llamadas a API o representación de páginas.
Redis Redis es una tienda de valores clave avanzados de código abierto. A menudo se lo denomina servidor de estructura de datos ya que las claves pueden contener cadenas, hashes, listas, conjuntos y conjuntos ordenados.
Ambas son una herramienta muy buena para el almacenamiento en caché de contenidos o variables.
Aquí hay algunos puntos de referencia y puede elegir cuál prefiere:
Redis VS Memcached (banco ligeramente mejor)
En Redis, Memcached, Speed, Benchmarks y The Toilet
También puedes instalar Varnish , nginx o G-Wan
Barniz : Varnish es un acelerador de HTTP diseñado para sitios web dinámicos de contenido pesado. A diferencia de otros aceleradores HTTP, como Squid, que comenzó su vida como un caché del lado del cliente, o Apache, que es principalmente un servidor de origen, Varnish fue diseñado desde cero como un acelerador HTTP.
nginx nginx (pronunciado? engine-x?) es un proxy de servidor web / proxy reverso y correo electrónico (IMAP / POP3) liviano y de alto rendimiento, licenciado bajo una licencia tipo BSD. Se ejecuta en Unix, Linux, variantes de BSD, Mac OS X, Solaris y Microsoft Windows.
g-wan G-WAN es un servidor web con scripts ANSI C y una tienda Key-Value que supera a todas las demás soluciones.
Aquí hay algunos puntos de referencia y puede elegir cuál prefiere:
Sirviendo archivos estáticos: una comparación entre Apache, Nginx, Varnish y G-WAN
Puntos de referencia del rendimiento del servidor web
Nginx + barniz en comparación con Nginx
Tengo un sitio web de alto tráfico y necesito asegurarme de que mi sitio sea lo suficientemente rápido para mostrar mis páginas a todos rápidamente.
Busqué en Google muchos artículos sobre velocidad y optimización, y esto es lo que encontré:
- Guardar en caché la página
- Guárdalo en el disco
Caché de la página en la memoria:
Esto es muy rápido, pero si necesito cambiar el contenido de mi página, tengo que eliminarlo de la memoria caché y luego volver a guardar el archivo en el disco.
Guárdalo en el disco
Esto es muy fácil de mantener, pero cada vez que se accede a la página, tengo que leer en el disco.
¿Con qué método debo ir?
La gran pregunta con respecto al rendimiento del sitio web es "¿sirve páginas estáticas o sirve páginas dinámicas?".
Páginas estáticas
La mejor forma de acelerar las páginas estáticas es guardarlas en caché fuera de su sitio web. Si puede, ayúdelos desde un CDN (Akamai, Cotendo, Nivel 3). En este caso, el tráfico nunca llega a su sitio. Hay varias formas de controlar la memoria caché, desde la duración fija hasta las directivas estándar de caché HTTP.
Incluso si no puede servir su HTML desde un CDN, almacenar sus imágenes, javascript y otros recursos estáticos en un CDN puede acelerar su sitio; podría usar un servicio en la nube como Amazon para esto.
Si no puede permitirse un CDN para su HTML, podría usar su propia capa de proxy de almacenamiento en caché, como sugiere el libro de Zeus. He tenido buenos resultados con Varnish. Lo ideal sería que ejecutara su proxy de almacenamiento en caché en su propio hardware, pero puede ejecutarlo en sus servidores existentes.
Páginas dinámicas
Las páginas dinámicas son más difíciles de almacenar en caché, por lo que debe concentrarse en hacer que las páginas sean lo más eficientes posible. Esto básicamente significa buscar el cuello de botella: en la mayoría de los sistemas, el cuello de botella es la base de datos (pero de ninguna manera siempre).
Si está seguro de que su cuello de botella es la base de datos, existen varias formas de almacenar en caché: puede almacenar en caché "fragmentos" de HTML o puede almacenar en caché las consultas de la base de datos. Usar un acelerador ayuda con esto; no inventaré uno desde cero. Esto probablemente signifique volver a diseñar (partes de) su aplicación.
Primero debe perfilar su sitio.
En lugar de adivinar salvaje uno tiene que determinar cierto cuello de botella y luego resolver ese problema determinado.
Cahing no es una bala de plata ni un sinónimo para la optimización.
A veces, el almacenamiento en caché no es aplicable (para los anuncios, por ejemplo), a veces no servirá de nada ya que la razón de la lentitud del sitio ht puede estar en algún lugar no relacionado.
Su sitio puede quedarse sin memoria. Por lo tanto, el almacenamiento en memoria caché empeorará las cosas.
No puedo creer que alguien tenga un sitio de alto tráfico y dijo una palabra del perfil previo. ¿Cómo se puede ejecutar sin saber nada de sus partes internas? Carga de CPU, carga de memoria, disco de E / S y tal.
Puedo agregar:
Guarda todo lo que puedas
Minimizar el número de incluye
Usa el acelerador
Investigue qué hace que su sitio sea lento. No te olvides de YSlow y cosas similares, pueden ayudarte mucho.
Además, si tienes cálculos pesados podrías escribir la extensión de PHP para ellos, pero no creo que este sea tu caso
Tienes una buena idea, que está cerca de lo que yo hago. Si tengo una página 100% estática, guardaré una versión html y la mostraré al usuario en lugar de generar el contenido de nuevo cada vez. Esto ahorra consultas mysql y varias operaciones io en algunos casos. Cada vez que hago algún cambio, la interfaz de mi administración simplemente elimina el archivo html y lo recrea.
Este método ha demostrado ser alrededor de 100 veces más rápido en mi servidor.