Article View: chile.comp.programacion
Article #314Re: PHP: Mitos o realidades?
From: Sebastian E. Castro Avila
Date: Mon, 23 Jun 2008 23:46
Date: Mon, 23 Jun 2008 23:46
108 lines
5028 bytes
5028 bytes
In chile.comp.unix +mArkO+ <kitim@porta.com> wrote: m> Esto lo encontre en una web m> =================================== m> TRUCOS PARA OPTIMIZAR EL CODIGO PHP m> =================================== m> 1)Si un m?todo puede ser static, decl?ralo como static. m> 2)echo es m?s r?pido que print. Ese lo habia leido. m> 3)Utiliza m?ltiples echo?s en lugar de concatenar cadenas. m> 4)Fija el valor m?ximo para los bucles antes del loop, y no estando ya m> dentro de ?l. m> 5)Utiliza unset para las variables que ya no van a ser usadas, m> especialmente arrays cargados, de forma que liberes memoria. Esto es cierto en cualquier lenguaje, pero a menos que tengas centenas de variables con mucho contenido y un script que corre miles de veces por minuto, no lo vas a notar. m> 6)require_once() es demasiado lenta y poco rentable. m> 7)Utiliza rutas absolutas en includes y requires, reduciendo m> considerablemente el tiempo de carga. m> 8)Si necesitas saber cuando comenz? a ejecutarse un script, m> $_SERVER['REQUEST_TIME'] es preferible a time(). Esto es cierto porque time es una llamada a sistema y REQUEST_TIME es una variable que ya esta en la memoria: te ahorras algunas instrucciones. m> 9)str_replace es mucho m?s r?pida que preg_replace, pero strtr es a?n m?s m> r?pida que str_replace. Nada nuevo, en Perl tambien se recomienda evitar los reemplazos via regex por rendimiento. m> 10)Es mejor utilizar una estructura condicional switch-case que m?ltiples m> if-else anidados. m> 11)Omitir errores mediante el uso de @ es bastante lento. m> 12)Activa en Apache el modo mod_deflate. m> 13)Cierra la conexi?n con la base de datos cuando ya no sea necesaria. m> 14)$row['id'] es 7 veces m?s r?pido que $row[id]. m> 15)No utilices funciones dentro de bucles, como por ejemplo en ($x=0; $x < m> count($array); $x) La funci?n count() es ejecutada en cada pasadas. m> 16)Utiliza variables locales. Incrementar una variable gloval es el m> doble de lento que hacerlo con una local. m> 17)Incrementar una propiedad de un objeto (ej. $this->prop++)es 3 m> veces m?s lento que el uso de una variable local. Esto es cierto en C++ tambien. m> 18)Inicializa las variables. Aunque no es necesario en PHP, m> incrementar una variable no declarada es entre 9 y 10 veces m?s lento m> que hacerlo con una ya declarada. m> 19)Utiliza la comilla simple ' en lugar de la doble comilla " ya que m> PHP no busca variables entre comillas simples, y el tiempo de carga m> puede verse reducido. m> 20)No utilices scripts PHP si puedes usar HTML est?tico, ya que ?ste m> ?tlimo carga entre 9 y 10 veces m?s r?pido. m> 21)Instala alg?n sistema de cach? para que tus scripts no deban ser m> ejecutados cada vez que se carga una p?gina. ?ste punto reduce m> considerablemente el tiempo de carga de una p?gina y el uso de CPU del m> servidor. Proxy reverso le llaman algunos. m> 22)++$i es m?s r?pido que $i++ en PHP. Esto es cierto tambien en C++ (y se nota si haces millones de sumas por segundo), debido a que $i++ requiere hacer una copia de $i, la otra actua sobre una referencia. m> 23)No utilices todas las estructuras como clases, el uso de arrays en m> muchos casos tambi?n es adecuado. m> 24)Trata de hacer tu c?digo reutilizable y evitar redundancias. Esto es cierto en cualquier lenguaje y no solo por 'performance' sino para ahorrar horas hombre y hacer el desarrollo mas profesional. m> 25)Puedes utilizar compresi?n Gzip para aumentar la velocidad de m> transferencia. Esta no es siempre conveniente: si tus scripts generan un output peque~no, tomas mas tiempo y recursos en comprimir la salida. Esto es util cuando la cantidad de datos a transferir es alta, no es llegar y utilizar. Saludos -- Sebastian E. Castro Avila ReQuiN secastro@dcc.uchile.cl
Technical Details
Message-ID:
<g3pck8$1m1$1@helcaraxe.dcc.uchile.cl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!novia!newsfeed.yul.equant.net!news-santiago!helcaraxe.dcc.uchile.cl!not-for-mailReferences:
<g3k2so$gb$1@news.nivel5.cl>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,8ee269e0dd40bcf0
X-Google-Thread: 1054ea,8ee269e0dd40bcf0
X-Google-Attributes: gid1593cb,gid1054ea,domainid0,public,usenet
X-Google-Language: SPANISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!novia!newsfeed.yul.equant.net!news-santiago!helcaraxe.dcc.uchile.cl!not-for-mail
From: "Sebastian E. Castro Avila" <secastro@dichato.dcc.uchile.cl>
Newsgroups: chile.comp.programacion,chile.comp.unix
Subject: Re: PHP: Mitos o realidades?
Followup-To: chile.comp.programacion
Date: Mon, 23 Jun 2008 23:46:16 +0000 (UTC)
Organization: DCC Universidad de Chile
Lines: 108
Message-ID: <g3pck8$1m1$1@helcaraxe.dcc.uchile.cl>
References: <g3k2so$gb$1@news.nivel5.cl>
NNTP-Posting-Host: 192.80.24.4
X-Trace: helcaraxe.dcc.uchile.cl 1214264776 1729 192.80.24.4 (23 Jun 2008 23:46:16 GMT)
X-Complaints-To: newsmaster@dcc.uchile.cl
NNTP-Posting-Date: Mon, 23 Jun 2008 23:46:16 +0000 (UTC)
User-Agent: tin/1.8.3-20070201 ("Scotasay") (UNIX) (Linux/2.6.23-gentoo-r8 (i686))