Mejoras de latencia y memoria en WordPress sin cambiar el núcleo

  • Autor Autor shadowhck
  • Fecha de inicio Fecha de inicio
shadowhck

shadowhck

Lambda
Programador
Verificado por Whatsapp
Hola,

Despues de horas de optimizaci'on de mi sitio, me di cuenta que el principal problema eran los cientos de archivos que utiliza WordPress.

El aporte que les traigo reducira la latencia de WordPress notablemente, pruebas realizadas:


  • Intel Core i3 330M
  • 4 GB DDR3
  • Windows 7 Home Premium 64 bits
  • PHP 5.3.6
  • Apache2.2
  • MySQL 5.5.11
  • WordPress 3.3.1

Sin modificaciones al nucleo de WordPress:

HTML:
<!--11 queries.  0,307 seconds. -->
<!--
Memory usage: 14.623847961426 MB, 15.25 MB
Memory Peak usage: 15.323654174805 MB, 15.5 MB
-->

Con las modificaciones al nucleo de WordPress:

HTML:
<!--11 queries.  0,171 seconds. -->
<!--
Memory usage: 14.206108093262 MB, 15.25 MB
Memory Peak usage: 15.419021606445 MB, 15.5 MB
-->


Los resultados en cuanto a disminucion de la latencia son buenos. La memoria se reduce solo una pequeña parte y las consultas a la bd permanecen intactas.

Que es lo que hize? No elimine nada, solo hize unas adaptaciones.
Los programadores o aprendices sabran que PHP maneja la funcion include y require y esta funcion como todas consume ciertos recursos y aumenta la latencia. Lo que hize fue incluir los archivos que requeria wp-settings.php y por eso ahora paso de medir 9.68 KB a medir 1.77 MB y a la vez reduciendo el uso de recursos y latencia.

El que quiera tener estos resultados en su instalacion debera contar con la version de WordPress 3.3.1 y con el siguiente archivo:


Instalacion:
Descomprimir el archivo y reemplazarlo por wordpress**/wp-settings.php.

Es todo lo que se necesita hacer.

Agradecer no cuesta nada 🙂 .

Edito: Muestren los resultados para ver que tal les va. Con este plugin pueden ver la memoria y la latencia antes y despues. Enlace eliminado
 
Última edición:
No soy programador, estoy estudiando recién algo de informática, digamos que recién empiezo, pero esas modificaciones que hiciste deshabilitan o generan errores influyendo en algunas funciones? Más allá de que no sean utilizadas? En caso de que no afecte en nada, y que solo sean mejoras de rendimiento, no sería conveniente para ti proporcionar el material al equipo de WP¿?

Se feliz!

P.D. El "wp-settings.exe" no me da confianza.. aún así igual no planeaba usarlo, solo comento!
 
No soy programador, estoy estudiando recién algo de informática, digamos que recién empiezo, pero esas modificaciones que hiciste deshabilitan o generan errores influyendo en algunas funciones? Más allá de que no sean utilizadas? En caso de que no afecte en nada, y que solo sean mejoras de rendimiento, no sería conveniente para ti proporcionar el material al equipo de WP¿?

Se feliz!

P.D. El "wp-settings.exe" no me da confianza.. aún así igual no planeaba usarlo, solo comento!

Bueno, en si no modifica ninguna funcionalidad, solo es una optimizacion. Y si tienes desconfianza prueba escanearlo con cualquier antivirus o haz click derecho y extraer aqui (es un comprimido auto extraible).

Y no lo proporciono porque el equipo de WordPress nos brinda un WordPress para humanos y cada funcion en su respectivo archivo (por asi decirlo).
 
Gran aporte, aunque hubieras publicado que fue lo que modificaste exactamente. :encouragement::encouragement:
 
Suena interesante, haber si actualizas para ver que cosas modifica.
Gracias!
 
hola, acabo de reemplazar el archivo por el que pusiste y me da error. no carga el sitio, volvi a reinstalar wordpress y funciona nuevamente

quedo a la espera de una respuesta porque puede pasar esto

gracias.
 
hola, acabo de reemplazar el archivo por el que pusiste y me da error. no carga el sitio, volvi a reinstalar wordpress y funciona nuevamente

quedo a la espera de una respuesta porque puede pasar esto

gracias.

Pues me parece muy raro, quisaz hubo un error al transferirse porque es un archivo algo pesado. Prueba utilizar el otro link de descarga. 🙄
 
hola, acabo de reemplazar el archivo por el que pusiste y me da error. no carga el sitio, volvi a reinstalar wordpress y funciona nuevamente

quedo a la espera de una respuesta porque puede pasar esto

gracias.

posiblemente por algún plugin es evidente que los programadores de Wordpress trabajan a medias entre la optimización MÁS ALTA Y LA ESTABIBILIDAD Más válida, seguro que podrían llevar la optimización a límites insospechados, pero seguro que eso crearía muchos problemas de estabilidad
 
posiblemente por algún plugin es evidente que los programadores de Wordpress trabajan a medias entre la optimización MÁS ALTA Y LA ESTABIBILIDAD Más válida, seguro que podrían llevar la optimización a límites insospechados, pero seguro que eso crearía muchos problemas de estabilidad

Como programador se que no tiene porque fallar xD. Lo unico que hize fue unir varios archivos en uno solo para evitar inclusiones las cuales aumentaban la latencia y un poco la memoria. :fatigue:
 
Me gustaría saber qué elementos hay que modificar en el wp-settings.php pues he revisado el tuyo y parece que incluye todos los archivos del core en un solo archivo. Además de que parece que la clave de tu API que da Wordpress.com también se incluye.
Supongo que hay que borrar algunos archivo para evitar la duplicidad, ¿o no?

Saludos, gracias por el aporte.
 
Me gustaría saber qué elementos hay que modificar en el wp-settings.php pues he revisado el tuyo y parece que incluye todos los archivos del core en un solo archivo. Además de que parece que la clave de tu API que da Wordpress.com también se incluye.
Supongo que hay que borrar algunos archivo para evitar la duplicidad, ¿o no?

Saludos, gracias por el aporte.

En realidad si incluye los achivos del core pero no incluye ningun Secret Key ni nada por el estilo. el wp-config.php queda fuera y no lo inclui por obias razones. A menos claro que por accidente lo haya hecho, pero aun así deberia funcionar tal cual. :encouragement:
 
Bueno yo voy a ofrecer mi punto de vista sin intencion de ofender a nadie, asi que en primer lugar gracias por compartir tu trabajo shadowhck, pero no crees que esto podrian haberlo hecho los autores de wordpress...

Primer problema:
Las actualizaciones con este metodo volveran a traer problemas ya que si se actualiza el core, el archivo que nos dan no se actualiza.

Segundo problema:
Hay explicaciones tambien logicas de que esta reduccion de latencia no es tan recomendada, como ya sabran PHP es un lenguage interpretado que es compilado en el sistema. Con este método estamos compilando SIEMPRE un archivo de 1.77 MB mientras que de la otra forma compilamos un archivo de mucho menor tamaño y los includes necesarios. El core de wordpress dependiendo de que llamada hagamos al wordpress usara ciertos archivos NO usa siempre todo el core de ahi que no haga falta compilar siempre un archivo de 1,77MB. Aplicando esto conseguimos algo parecido a la frase de "Las gallinas que salen por las gallinas que entran" vamos que en realidad es una optimizacion MUY dudosa y bastante dificil de medir, quizas en la peticion realizada por el usuario se observa una mejoria per oen otra peticion ganamos latencia, desde mi punto de vista no es un metodo eficaz ni eficiente y mucho menos testeado a fondo.

El método para optimizar el wordpress no está a nivel del propio core sino en otras opciones, podeis leer el siguiente documento: How To Speed Up Wordpress Using wp-config.php

Mi recomendación es que si quieren optmizar su wordpress sencillamente usen el plugin "w3c total cache", aumentaran de forma efectiva la velocidad de su wordpress sin muchos dolores de cabeza ni modificaciones caseras arriesgadas.

Saludos y gracias nuevamente.
 
Bueno yo voy a ofrecer mi punto de vista sin intencion de ofender a nadie, asi que en primer lugar gracias por compartir tu trabajo shadowhck, pero no crees que esto podrian haberlo hecho los autores de wordpress...

Primer problema:
Las actualizaciones con este metodo volveran a traer problemas ya que si se actualiza el core, el archivo que nos dan no se actualiza.

Segundo problema:
Hay explicaciones tambien logicas de que esta reduccion de latencia no es tan recomendada, como ya sabran PHP es un lenguage interpretado que es compilado en el sistema. Con este método estamos compilando SIEMPRE un archivo de 1.77 MB mientras que de la otra forma compilamos un archivo de mucho menor tamaño y los includes necesarios. El core de wordpress dependiendo de que llamada hagamos al wordpress usara ciertos archivos NO usa siempre todo el core de ahi que no haga falta compilar siempre un archivo de 1,77MB. Aplicando esto conseguimos algo parecido a la frase de "Las gallinas que salen por las gallinas que entran" vamos que en realidad es una optimizacion MUY dudosa y bastante dificil de medir, quizas en la peticion realizada por el usuario se observa una mejoria per oen otra peticion ganamos latencia, desde mi punto de vista no es un metodo eficaz ni eficiente y mucho menos testeado a fondo.

El método para optimizar el wordpress no está a nivel del propio core sino en otras opciones, podeis leer el siguiente documento: How To Speed Up Wordpress Using wp-config.php

Mi recomendación es que si quieren optmizar su wordpress sencillamente usen el plugin "w3c total cache", aumentaran de forma efectiva la velocidad de su wordpress sin muchos dolores de cabeza ni modificaciones caseras arriesgadas.

Saludos y gracias nuevamente.

Es un buen punto de vista, pero lo que yo hize es colocar los archivos requeridos para el correcto funcionamiento (Es por eso que no toqué para nada el wp-admin, y creo que se lo que hago) y la mayoria de los archivos incluidos eran incluidos mediante require y require_once.

Por sierto, la latencia disminuyo considerablemente, y el consumo de memoria RAM también.

Edito: Es algo erroneo lo de las gallinas en este caso. Lo comprobe y mis resultados son los esperados.

Si el equipo de WordPress no realiza esto es porque es de codigo libre y tienen que darnos un codigo facilmente modificable y jerárquico y no un archivo de 58,000 lineas robustas y pesadas al editarse. Aclaro que no tengo mucho tiempo testeandolo, se me ocurrio y lo hize sin problemas de ningun tipo.

Respecto al primer problema: Solo es cuestion de volverlo a hacer al actualizar, es algo que se hace en menos de 2 horas.
 
Última edición:
Dices que se hace en menos de dos horas.... no solo das posibilidades de introducir bugs al tocar el codigo sino que ademas hay que emplear valioso tiempo en ello con cada actualizacion. El ahorro de memoria es insignificante si ves bien los resultados.

La latencia dependera de muchos factores no solo de los includes, desde el uso de disco duro hasta la velocidad de los mismos y lo mismo con la RAM y CPU.

He probado en mi servidor con disco duro ssd tu archivo y no he notado nada en la latencia, todo sigue igual hay diferencias insignificantes de entre 10 y 20 milisegundos (1000 milisegundos = 1 segundo), vamos que esta optimizacion a mi parecer y ya digo agradezco tu trabajo, pero esto en concreto es matar moscas a cañonazos.
 
Dices que se hace en menos de dos horas.... no solo das posibilidades de introducir bugs al tocar el codigo sino que ademas hay que emplear valioso tiempo en ello con cada actualizacion. El ahorro de memoria es insignificante si ves bien los resultados.

La latencia dependera de muchos factores no solo de los includes, desde el uso de disco duro hasta la velocidad de los mismos y lo mismo con la RAM y CPU.

He probado en mi servidor con disco duro ssd tu archivo y no he notado nada en la latencia, todo sigue igual hay diferencias insignificantes de entre 10 y 20 milisegundos (1000 milisegundos = 1 segundo), vamos que esta optimizacion a mi parecer y ya digo agradezco tu trabajo, pero esto en concreto es matar moscas a cañonazos.

bueno, mas bien lo que quise dar a entender es que es una mejora y se me hace raro que no te haya funcionado, a mi me funciono reduciendo la latencia en un 50% y esto conlleva a que el servidor ahora es capaz de aguantar el doble de solicitudes debido a que el tiempo entre cada solicitud disminuye considerablemente.

Tengo un sitio web el cual tiene una latencia insignificante ahora con esta optimizacion y otras optimizaciones mas:
<!--21 queries. 0.079 seconds. -->


Aclaro que sin ningun plugin de cache, y esto es WordPress en todo su explendor.
 
Última edición:
bueno, mas bien lo que quise dar a entender es que es una mejora y se me hace raro que no te haya funcionado, a mi me funciono reduciendo la latencia en un 50% y esto conlleva a que el servidor ahora es capaz de aguantar el doble de solicitudes debido a que el tiempo entre cada solicitud disminuye considerablemente.

Nada... yo sigo opinando lo mismo, estas completamente perdido en lo que la palabra "optimización" implica, lo que has hecho NO conlleva que el servidor ahora sea capaz de aguantar el doble de solicitudes, ¿has disminuido la latencia? bueno.... desde mi punto de vista NO, asi es como le llamas tu, pero en realidad no puedes hablar de latencia sino de optimizacion de codigo, has reducido el tiempo de ejecucion de una parte del codigo nada mas, la latencia implica MUCHAS mas cosas y a otros niveles servidor, base de datos, etc... que no voy a entrar ahora.
Por esto mismo es falso decir que ahora el servidor aguanta el doble de solicitudes, porque no es asi, el servidor aguantara las solicitudes para las que está diseñado al margen de tus mejoras del tiempo de ejecucion de codigo.

Para que lo entiendas si el servidor tiene 1Gb de Ram y 1CPU, por decir algo... que tu mejores el tiempo de ejecucion no implica que el servidor vaya a poder recibir el doble de solicitudes, sino que dependerá de la parte del hardware llamada "cuello de botella" que sera ram, cpu... o lo q sea. Para que lo entiendas tu puedes tener una cadena de distribucion donde hay 3 etapas: descarga, corte y empaquetado. Si tus etapas de descarga y empaquetado rinden un 90% pero la etapa de corte solo un 50%, tu ritmo de produccion se ajustara a la etapa de corte, en definitiva el cuello de botella es la etapa de corte. Pues en esto pasa exactamente lo mismo, estas optimizando en donde desde mi punto de vista NO hay que optimizar ya que el/los cuello/s de botella estan en otro lado.

Con este post quiero dejar claro, que quizas eso aumente la velocidad de ejecucion del codigo php pero NO disminuira el tiempo de respuesta (latencia) de nuestro wordpress. Sencillamente hay varios errores de concepto en esta optimizacion que la hacen poco util, poco practica y mal enfocada.

Justifico lo anterior diciendo lo que ya dije, se usa un plugin como w3c total cache, que te hace cache de queries, archivos, minifier de javascript, etc... y entonces es cuando realmente podemos hablar de optimizacion en la latencia.
 
Última edición:
Nada... yo sigo opinando lo mismo, estas completamente perdido en lo que la palabra "optimización" implica, lo que has hecho NO conlleva que el servidor ahora sea capaz de aguantar el doble de solicitudes, ¿has disminuido la latencia? bueno.... desde mi punto de vista NO, asi es como le llamas tu, pero en realidad no puedes hablar de latencia sino de optimizacion de codigo, has reducido el tiempo de ejecucion de una parte del codigo nada mas, la latencia implica MUCHAS mas cosas y a otros niveles servidor, base de datos, etc... que no voy a entrar ahora.
Por esto mismo es falso decir que ahora el servidor aguanta el doble de solicitudes, porque no es asi, el servidor aguantara las solicitudes para las que está diseñado al margen de tus mejoras del tiempo de ejecucion de codigo.

Para que lo entiendas si el servidor tiene 1Gb de Ram y 1CPU, por decir algo... que tu mejores el tiempo de optimizacion no implica que el servidor vaya a poder recibir el doble de solicitudes, sino que dependerá de la parte del hardware llamada "cuello de botella" que sera ram, cpu... o lo q sea. Para que lo entiendas tu puedes tener una cadena de distribucion donde hay 3 etapas: descarga, corte y empaquetado. Si tus etapas de descarga y empaquetado rinden un 90% pero la etapa de corte solo un 50%, tu ritmo de produccion se ajustara a la etapa de corte, en definitiva el cuello de botella es la etapa de corte. Pues en esto pasa exactamente lo mismo, estas optimizando en donde desde mi punto de vista NO hay que optimizar ya que el/los cuello/s de botella estan en otro lado.

Con este post quiero dejar claro, que quizas eso aumente la velocidad de ejecucion del codigo php pero NO disminuira el tiempo de respuesta (latencia) de nuestro wordpress. Sencillamente hay varios errores de concepto en esta optimizacion que la hacen poco util, poco practica y mal enfocada.

Justifico lo anterior diciendo lo que ya dije, se usa un plugin como w3c total cache, que te hace cache de queries, archivos, minifier de javascript, etc... y entonces es cuando realmente podemos hablar de optimizacion en la latencia.

..................
 
Última edición:
¿Que indican esas graficas? ¿Que significa cada color? ¿Que escalas tenemos en los ejes x e y?

Intuyo que estamos midiendo los recursos relacionandolos OTRA VEZ con el tiempo de compilacion de php. Seguimos con lo mismo, disminuir el tiempo de ejecucion NO disminuye recursos, usa los mismos, sino en tus estadisticas que pones fijate que solo salvas unos 46Kb de memoria y el "Memory Peak usage" usage es exactamente el mismo en ambos casos.

Me pierdo al tratar de entender esas graficas... no se que criterio has usado para representar los datos, solo veo colores.
 

Temas similares

Atrás
Arriba