Entradas etiquetadas ‘php

1 – Inicializa las variables antes de utilizarlas.

2 – Dedica tiempo a estudiar PHP, está es un lenguaje en continuo proceso de crecimiento y sus características van cambiando con el tiempo.

3 – Incrementar una variable en un método es lo mas rápido, del mismo modo que hacerlo en una función.

4 – Incrementar una variable global es dos veces mas lento que una variable local.

5 – Incrementar una variable local en un método es lo más rápido. Casi lo mismo que llamar a una variable local en una función.

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

7 – El hecho de declarar una variable global a pesar de que no la utilices en ninguna función realentiza tu script, PHP tiene que chequear si la variable existe.

8 – La llamada a una función con un parametro toma aproximadamente el mismo tiempo que de 7 a 8 operaciones con variables locales, y esa misma llamada a un método supondrían unas 15 operaciones.

9 – Si necesitas saber el timestamp de acceso a un script, considera utilizar $_SERVER['REQUEST_TIME'] en lugar de time().

10 – $row['id'] es hasta 7 veces más rápido que $row[id].

11 – $localvar++ es hasta 15 veces más rápido que function inc(){ $localvar++; }.

12 – Los scripts PHP se “compilan” cada vez que son ejecutados a menos que se guarde el código objeto en un cache. Las diferentes herramientas de compilación de PHP incrementan el rendimiento hasta un 100%.

Aquí os dejo unos pocos trucos para escribir menos código PHP en tus scripts, seguro que algunos de estos trucos ya los conocías pero bueno me parece interesante recopilar estos trucos.

Reducir las sentencias if()


if($variable == 2)
{
$valor = true;
}
else
{
$valor = false;
}

Podríamos condensar esas 8 líneas de código en una única línea:

$valor = ($variable == 2) ? true : false;

Declarando variables

A menudo declaramos multiples variables cada una en líneas separadas, todas estas variables se podrían llegar a agrupar en una única declaración.

$variable1 = 7;
$variable2 = 12;
$variable3 = 9;

Podríamos declarar varias variables con diferente valor en una única línea de la siguiente manera:

list($variable1 ,$variable2 ,$variable3) = array(7,12,9);

Y más fácil todavia si las variables declaradas coinciden en el valor asignado:

$variable1 = $variable2 = $variable3 = “Prueba”;

Usar switch() en lugar de if()

Parece algo lógico pero muchas veces utilizamos if() dónde podríamos ahorrar código usando switch():

if($opcion == “menu”)
{
//cargar menu
}
elseif($opcion == “portada”)
{
//cargar portada
}
else
{
//no cargar nada
}

Usando switch() podríamos reducir el código ostensiblemente:

switch($opcion)
{
case ‘menu’:
//cargar menu
break;
case ‘portada’:
//cargar portada
break;
default:
//no cargar nada
}

Son sólo tres trucos pero seguramente te pueden ahorrar muchas líneas de código si sabes aplicarlos correctamente.

* Si alguien tiene pequeños trucos para optimizar código PHP le animo a que lo comente y enriquecer un poco esta entrada.

No, no se trata de un baile que mejora el rendimiento de PHP sino de un proyecto Open Source de Facebook que comenzó hace 2 años debido a que las funcionalidades existentes para optimizar PHP se antojaban insuficientes.

HipHop se trata de una especie de transformador de código fuente que toma el PHP y lo convierte en C++ para ser compilado con g++, para explicarlo de una manera rápida y sencilla podríamos decir que HipHop permite que cualquier desarrollador pueda escribir código PHP pero que el código final se ejecute con el rendimiento que ofrecería el código de un programador experto, el resultado es una mejora de rendimiento del 50%.

Y es que Facebook poco a poco irá siendo a PHP lo mismo que Google es a Python, si lo pensamos es realmente positivo cuando una gran empresa que utiliza una tecnología sobre la que depende su negocio se dedica a mejorar dicha tecnología no sólo para beneficiarse ellos mismo sino para beneficiar a la comunidad de desarrolladores y consumidores de dicha tecnología.

Para entenderlo mejor primero hay que saber como funciona PHP, PHP es un lenguaje de programación interpretado como Ruby, Python y Perl, esto es genial para la productividad de los desarrolladores porque no es necesario compilar el código pero tiene por contra unos requerimentos de memoria y consumos de CPU mayores que un lenguaje compilado como es el caso de C++, por lo tanto HipHop al tranformar el código PHP a código C++ nos permite disfrutar de lo mejor de ambos lenguajes.

¿Cómo ha mejorado HipHop a Facebook?

  • Web — 50% menos de consumo de CPU con el mismo tráfico
  • API — 30% menos de consumo de CPU con el doble de tráfico

La mejora de rendimiento de Facebook ha sido probada de manera progresiva en sus propios servidores y ahora un 90% de los servidores de Facebook utilizan HipHop, la mejora cómo hemos vistos se divide en mejoras relacionadas con al Web y relacionadas con el uso de la API, la clave para la diferencia de mejora entre Web y API radica en que la Web requiere operaciones más complejas que la API.

¿Hay algún tipo de limitación?

Con HipHop no podrás utilizar funciones como eval() y create_function(), la naturaleza dinámica de estas funciones hace imposible su conversión a código C++, sin embargo estas funciones no son de las más populares entre los desarrolladores de PHP.

Actualmente HipHop no puede ser ejecutado en Apache pero se trabaja en ello.

¿Dónde puede encontrarlo?

HipHop será liberado dentro de poco pero por el momento nos tenemos que conformar con la entrada en el blog de Facebook o con esta presentación.

Me gustaría que dejaraís vuestra opinión sobre el tema y si alguien tiene información adicional que la aporte ya que creo que se trata de una excelente noticia y más aún tratándose de PHP que como hemos comentado anteriormente se trata de un lenguaje de programación tremendamente flexible pero muy difícil de escalar cuando hablamos de sitios web de gran tráfico.