Pautas generales para mejorar el rendimiento

LIBP-0120 (Libro de pautas)

PHP es bastante rápido. Por lo general, las partes lentas de sus programas PHP tienen que ver con recursos externos que crean dependencias en las consultas de base de datos o por el contenido de una URL . Dicho esto, el código PHP puede no ser tan eficiente como podría ser. Estas pautas resumen las técnicas para encontrar y corregir problemas de rendimiento en el código.

Existe debate en el mundo de la ingeniería de software sobre el mejor momento en el proceso de desarrollo para empezar a optimizar.Si se optimiza demasiado pronto se corre el riesgo de pasar demasiado tiempo en pequeños detalles que no son relevantes en el producto final; si se optimiza demasiado tarde , se puede encontrar que usted tiene que reescribir grandes funcionalidades de su aplicación. La mejor opción es conseguir un conjunto de buenas practicas que ayuden con los pequeños problemas de manera que los beneficios se suman al final del desarrollo. A continuación un conjunto de pautas para ayudar al rendimiento.

Pautas

TítuloCarácter
Realizar una buena configuración del php.iniObligatoria
Comprimir la salida para reducir el traficoObligatoria
Inicializar las variablesObligatoria
Utilice 'Comillas simples' mejor que "Dobles comillas"Obligatoria

Realizar una buena configuración del php.ini

Algunos parámetro de configuración influyen de forma sistemática en el rendimiento de las aplicaciones montadas sobre php. Es recomendable seguir la siguiente directrices sobre el fichero configuración (php.ini) para favorecer el rendimiento

  • Asegure que register_globals esta desactivado (por defecto desde la version 4.2.0)
  • Desactive las directivas denominadas magic_quotes_*.
  • Asegure que la aplicacion filtra la entrada cuando sea necesario.
  • Desactive expose_php
  • Desactive register_argc_argv
  • A no ser que sea absolutamente necesario, no active always_populate_raw_post_data

Comprimir la salida para reducir el trafico

Es recomendable comprimir las páginas en la medida de lo posible

En muchas ocasiones el tiempo de procesamiento de una página es significativo, para reducirlo es una buena opción aligerar el tiempo de carga de nuestras páginas generadas con PHP.La compresión de una página web puede ahorrar y reducir el uso de ancho de banda. La mayoría de los navegadores web modernos aceptan páginas web codificados en GZIP , por lo tanto, podemos enviarlas al navegador comprimidas con GZip utilizando las funciones de control de salida. Un ejemplo es el siguiente donde se eliminan a su vez los espacios y saltos de linea de la fuente del documento, lo que no tendrá ningún efecto visual pero disminuirá el tiempo de descarga sería el siguiente

<?
ob_start();

// Contenido de la página, puede contener
// tanto HTML cómo PHP

$cntACmp =ob_get_contents();
ob_end_clean();
$cntACmp=str_replace("n",' ',$cntACmp);
$cntACmp=ereg_replace('[[:space:]]+',' ',$cntACmp);
ob_start("ob_gzhandler");
echo $cntACmp;
ob_end_flush();
?>

Inicializar las variables

Es una práctica recomendada inicializar las variables en PHP

No es necesario inicializar variables en PHP, sin embargo, es una muy buena práctica. Las variables no inicializadas tienen un valor predeterminado de acuerdo a su tipo dependiendo del contexto en el que son usadas (las booleanas se asumen como FALSE, los enteros y flotantes como cero, las cadenas se establecen como una cadena vacía y las matrices se convierten en un array vacío). El tiempo de ejecución se reduce de manera considerable si una variable esta inicializada

//Mal hecho:
if ($cliente == 5) ...

//Bien hecho
if (isset($cliente) && $cliente == 5) ...

El algunos casos ,como los métodos GET, no será posible inicializar las variables.

Utilice 'Comillas simples' mejor que "Dobles comillas"

Si se utilizan dobles comillas y comillas simples dentro de la misma cadena, se esta obligando a PHP a realizar comprobaciones sobre las variables que existan en la cadena y a substituirlas. Por ejemplo:

$number = 5;
echo "Tengo $number manzanas"

// La salida sería

Tengo 5 manzanas

Si se asume que el valor de la variable es cinco. Si se introduce dentro de comillas simples, se produce un ahorro de tiempo de ejecución bastante significativo ya que PHP no necesita parsear la cadena para analizar las variables.