Autor Tema: Consejos para obtener un mayor rendimiento de nuestras páginas.  (Leído 1151 veces)

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Consejos para obtener un mayor rendimiento de nuestras páginas.
« en: 30 de Agosto de 2010, 14:05:02 pm »
A menudo, tenemos páginas en las que necesitamos realizar muchas comprobaciones y eso, queramos o no, aumenta el tiempo que tarda el servidor en procesar nuestros archivos.


Voy a dar un par de ejemplos :P


En este ejemplo, por orden de rapidez, quiero que veáis cómo mostrar una cadena de texto "Mi nombre es Javier".
Código: [Seleccionar]
Mi nombre es Javier
<?php
echo &#39;Mi nombre es Javier&#39;;
echo "Mi nombre es Javier"
print &#39;Mi nombre es Javier&#39;;
print "Mi nombre es Javier";
?>

Lo más rápido es poner la cadena de texto fuera del código PHP, ya que se obtiene mayor rendimiento así (sobretodo en cadenas largas, éste no es el ejemplo más indicado porque tendríamos que estar abriendo y cerrando las etiquetas <? y ?> con lo cual aumenta el peso del archivo.

Si no tenemos más remedio que mostrarlo desde PHP, siempre usaremos la función echo antes que print.
Y si no tenemos que hacer uso de variables, es mucho mejor usar las comillas simples, ya que en las comillas dobles, PHP intentará buscar variables...

Las funciones require_once e include_once nos facilitan la tarea para evitar incluir 2 o más veces el mismo archivo, pero lógicamente son mucho más lentas que require e include.

En el tema de usar switch e if, si el if resultante no es demasiado grande, es mucho mejor que switch (en términos de procesamiento).

Otra cosa que podéis usar es lo siguiente, en lugar de usar { y } para los ifs, for, while, switch, etc.. podéis usar ésto, primero para que veáis como es de una manera "normal" y la siguiente es mucho mejor para nuestra vista como programadores :P
Código: [Seleccionar]
<?php
if(){
} else {
}

for(){
}

while(){
}



if():
else:
endif;

for():
endfor;

while():
endwhile;
?>

Un saludo :)
Un Saludo, Tope >> Programador FIJO en PHPeros

Comunidad PHPeros

Consejos para obtener un mayor rendimiento de nuestras páginas.
« en: 30 de Agosto de 2010, 14:05:02 pm »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #1 en: 30 de Agosto de 2010, 14:35:47 pm »

¡Hola tope, cuanto tiempo!.

Pues la verdad es que me ha venido al pelo al igual que tu otro tutorial para rebajar el tiempo de espera. La verdad es que siempre uso {} y nunca
lo hago sin ellos. Me resulta como mucho más fácil y menos complicado ya que con ayuda de {} puedes "guiarte".

K+

#Fdo. Physlet

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #2 en: 30 de Agosto de 2010, 15:05:44 pm »
Lo mismo digo Siquillote! =)

A veces uso

if($loquesea$prueba=true; else $prueba=false;


Pero así al parecer tarda más en procesarlo... y total.. 4 bytes más... Pero de la forma de if(): else: endif;
Escribes algo más, pero queda mucho más legible, no tienes que ir mirando si el } era por un if, un for... :P
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #3 en: 30 de Agosto de 2010, 15:10:40 pm »
Pero así al parecer tarda más en procesarlo... y total.. 4 bytes más... Pero de la forma de if(): else: endif;
Escribes algo más, pero queda mucho más legible, no tienes que ir mirando si el } era por un if, un for... :P

En realidad a mi me parece que queda mucho mas legible usando {} y las tabulaciones que if(): else: y endif:
De hecho en el estandar de programación de zend recomiendar usar los {} por eso mismo.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #4 en: 30 de Agosto de 2010, 15:23:38 pm »
En realidad a mi me parece que queda mucho mas legible usando {} y las tabulaciones que if(): else: y endif:
De hecho en el estandar de programación de zend recomiendar usar los {} por eso mismo.

Eso si que es verdad, para gustos los colores, por eso lo he puesto como que queda más legible para los programadores, para quienes programen con algo que no les diga cada apertura y cierre de {}.

Las tabulaciones para mí son obligatorias, el ejemplo de una línea lo uso de vez en cuando para casos concretos en los que el código es tan ínfimo que aprovecho... :P

Un saludo ;)
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #5 en: 30 de Agosto de 2010, 15:30:56 pm »
+karma lo de las comillas dobles no lo sabia y las uso siempre, ahora cambiare :)

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #6 en: 30 de Agosto de 2010, 18:15:17 pm »
En realidad a mi me parece que queda mucho mas legible usando {} y las tabulaciones que if(): else: y endif:
De hecho en el estandar de programación de zend recomiendar usar los {} por eso mismo.

Saludos!

+1
Es mas legible ya que te indica si lo cerraste u otra cosa (me refiero a las llaves).
Algo que se podría hacer... es primero usar las llaves y luego cambiarlo a la otra forma... pero programando ya de una vez así como dice Tope, siempre va a llegar el momento en donde te confundirás.

Saludos
Twitter: @JoakoM010



Desconectado Tope

  • PHPero Experto
  • *****
  • Mensajes: 540
  • Karma: 23
  • Sexo: Masculino
  • Programador PHP
    • Ver Perfil
    • www.Info-Keko.Es
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #7 en: 30 de Agosto de 2010, 20:18:33 pm »
Veo que el post va a dar de que hablar...

Lo mejor siguen siendo las llaves {} para todo, es lo que menos ocupan y tienen un excelente rendimiento, aunque la forma de los endif; endfor; etc.. le supera =P

Si yo uso el tema de endif, endfor, endwhile, es porque el programa con el que trabajo sabe perfectamente que es lo que estoy haciendo (le da igual si trabajas con llaves o así). Pero cuando en la misma página tienes un montón de ifs, varios for, o whiles... a la hora de saber que he cerrado, para mí es mejor.
No obstante cada uno... =P.

Ya se que me contradigo, estoy hablando de rendimiento y de rapidez, primero digo una cosa y la otra. No hacedme caso respecto a lo de las llaves, cada uno que lo haga como vea :D

Un saludo ;)
Un Saludo, Tope >> Programador FIJO en PHPeros

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #8 en: 30 de Agosto de 2010, 20:57:37 pm »
Cada quien busca el método que se les venga más cómodo, pero hay que saber qué método elegir a la hora de mostrar el código a otra persona para que este lo entienda.

Lo del endif y eso, me recuerda mucho a la sintaxis del VB y VB.NET, por lo tanto no me gusta xD

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #9 en: 01 de Septiembre de 2010, 16:33:56 pm »
A mi me parece más comodo usar llaves, claro que pensandolo bien, es cierto que endif, endfor ayuda a distinguir, y me podría ahorrar tener que recorrer medio codigo para ver donde me olvide un } xD

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #10 en: 01 de Septiembre de 2010, 21:10:43 pm »
Yo habia puesto un post sobre esto pero como quiera no esta demas. :)
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Consejos para obtener un mayor rendimiento de nuestras páginas.
« Respuesta #11 en: 28 de Septiembre de 2010, 13:17:08 pm »
A veces uso

if($loquesea$prueba=true; else $prueba=false;
Es que cuando de acuerdo a una condición solo ejecutas una sola sentencia, la forma correcta es esta.

1 sentencia:
if($num == 3)
   echo &
#39;El número es 3&#39;;
else
   echo &
#39;El número no es 3&#39;;

Múltiples sentencias:
if($num == 3)
{
   
$oper $val*2;
   echo &
#39;El doble es: &#39;.$oper;
}
else
   echo &
#39;El número no es 3&#39;;