Optimizando PHP !!! Parte I

Enero 18, 2007

(NOS MUDAMOS A http://dayllan.inclinado.org)

He recorrido la web buscando cualquier cosa relacionado con la optimizacion de PHP y hasta ahora he reunido unos cuantos puntos a tener en cuanta que por lo menos yo pasaba por alto y me imagino que muchos lo hagamos. Algunos son bastante interesantes. Espero que les sirva…

1.- No usar funciones dentro de un loop (ej. for( $i = 0; $i < count($array); $i++)) la función count() se llama cada vez.

2.- required_once() es caro.

3.- $row["id"] es 7 veces mas rápido que $row[id]. Además que PHP interpreta id como una constante no definida, y tira un notice indicando que no se definio en ningún lado y que lo va a usar como string.

4.- Si un método puede ser declarado estático, declaralo estático. Mejora la performance 4 veces.

5.- preg_replace es más rápido que str_replace, pero strtr es 4 veces más rápido que preg_replace.

6.- Los mensajes de error son caros.

7.- Incrementar una variable indefinida es 9 ó 10 veces más lento que una ya pre-declarada.

8.- Hacer un echo de etiquetas HTML es mucho mas lento que la salida directa en HTML.

9.- Haciendo un llamado a isset() es mucho mas rapido que strlen().

10- $i++ suele ser un poco mas lento que ++$i. Esto es solo aplicable para PHP, asique no anden modificando su código Java o C

11.-

$keys = array(“apples”, “oranges”, “mangoes”, “tomatoes”, “pickles”);
if (in_array(‘mangoes’, $keys)) { … }

es 3 veces mas lento que

$keys = array(“apples” => 1, “oranges” => 1, “mangoes” => 1, “tomatoes” => 1, “pickles” => 1);
if (isset($keys['mangoes'])) { … }

————————————————————————

Prometo una segunda parte….

Entry Filed under: php. .

2 Comments Add your own

  • 1. Arturo  |  Enero 19, 2007 at 8:22 pm

    Interesante para los que estamos verdes con este lenguaje.

    Un saludo.

    Responder
  • 2. Manuel Emiliano  |  Enero 19, 2007 at 11:14 pm

    Esta muy bien, creo que hacen falta algunos ejemplos para cada caso y el por que de la lentitud.

    Responder

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

Enero 2007
L M X J V S D
     
1234567
891011121314
15161718192021
22232425262728
293031  

Most Recent Posts