18 de Mayo de 2009

¿Cuánto tardan PHP y MySQL en generar tu contenido en WordPress?

Viper007Bond comparte en su blog un pequeño fragmento de código que mejora el clásico código (del tema default) para saber cuanto tiempo le ha costado al servidor generar la página que estamos viendo. Esta mejora persigue como objetivo decirnos, además del tiempo, el porcentaje del mismo que han consumido PHP y MYSQL respectivamente.

1. Primer paso:

Añadimos el siguiente código al archivo functions.php de nuestro tema (también serviría hacerlo en el wp-config.php):

<?php define( 'SAVEQUERIES', true ); ?>

2. Segundo paso:

Ahora insertamos este otro en el archivo footer.php del tema que estamos usando.

<?php
 
global $wpdb;
 
// Obtenemos el tiempo total de generación de la página
$totaltime = timer_stop( false, 22 );
 
// Calculamos el tiempo invertido en consultas de MySQL sumando el tiempo invertido en cada consulta
$mysqltime = 0;
foreach ( $wpdb->queries as $query )
$mysqltime = $mysqltime + $query[1];
 
// El tiempo invertido en PHP es lo que resta
$phptime = $totaltime - $mysqltime;
 
// Creamos los porcentajes
$mysqlper = number_format_i18n( $mysqltime / $totaltime * 100, 2 );
$phpper   = number_format_i18n( $phptime / $totaltime * 100, 2 );
 
// Imprimimos las estadísticas
echo 'P&aacute;gina generada en ' . number_format_i18n( $totaltime, 5 ) . " segundos ( {$phpper}% PHP, {$mysqlper}% MySQL )";
 
?>

Y listo :)

Por supuesto esto es sólo útil y/o recomendable si tenemos problemas de rendimiento en el servidor y sospechamos que es debido a WordPress (o más bien debido a alguna de sus extensiones). Con esta información tendremos alguna pista más de por dónde pueden ir los tiros…

Si no tenemos los mencionados problemas, no tiene sentido insertar esto en nuestra plantilla. Ya que vamos a añadir un poquito más de trabajo para lograr una información a la cual no le vamos a dar uso.

Deja un comentario

El autor del blog se reserva el derecho a no publicar los comentarios que contengan direcciones de email falsas o que considere no apropiados. Los comentarios que no guarden relación con la entrada donde se hagan serán borrados sin contemplaciones.