Foros del Web » Programando para Internet » PHP »

Funciones óptimas en php5

Estas en el tema de Funciones óptimas en php5 en el foro de PHP en Foros del Web. Aquí trataremos todas las funciones óptimas en php5, sus mejores rendimiento, menor consumo de recursos del servidor, seguridad eficiente y una serie de tips que ...
  #1 (permalink)  
Antiguo 08/11/2008, 04:54
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Funciones óptimas en php5

Aquí trataremos todas las funciones óptimas en php5, sus mejores rendimiento, menor consumo de recursos del servidor, seguridad eficiente y una serie de tips que nos ayudaran a elegir entre una función u otra:

include_once(), require_once() vs include(), require()

Tanto include_once() como require_once() son más costosos que include() o require(), por lo tanto debemos usar siempre que podamos estos últimos, además para mejorar su rendimiento debemos usar rutas absolutas en sus llamadas, en lugar de rutas relativas.

strcasecmp(), strpbrk(), stripos() vs funciones regex

Siempre que te sea posible usa strcasecmp(), strpbrk() o stripos() el lugar de funciones con expresiones regulares, las primeras son más rápidas.

preg_replace() vs str_replace() vs strtr()

La función preg_replace() es más lenta que str_replace(), que a su vez es más lenta que strtr, con lo que siempre que podamos usaremos strtr() para optimizar nuestras substituciones en cadenas.

strlen vs isset

La llamada a isset() es más rápida que la llamada a la función strlen(). Por ejemplo, será más rápido if(!isset($cad[9])) que if(strlen($cad)<9).

echo vs print()

La función de ambas es la misma, la salida de datos, la diferencia consiste en que print() devuelve un indicador de estado, lo que hace que sea más lenta que el echo, así que a menos que necesitemos dicho indicador mejor usar echo.

preg_match() vs ctype

Ambas sirven para validar una cadena según un patrón. Si nuestro patrón consiste en validar si la cadena es alfanumérica, alfabética, numérica, etc ctype será más rápida que preg_match() ya que tiene funciones específicas como ctype_alnum(), ctype_alpha(), ctype_digit(), etc que són más rápidas que usar preg_match() con su patrón correspondiente.

time() vs $_SERVER[’REQUEST_TIME’]

Para calcular el tiempo de ejecución de scripts o cualquier otra cosa siempre será más rápido usar $_SERVER[’REQUEST_TIME’] que la función time().
---------------------------------------------------------------------------------------------------
POR FAVOR RESPONDER CON MÁS TIPS DE PHP5 Y MYSQL5 OPTIMIZADOS
---------------------------------------------------------------------------------------------------
  #2 (permalink)  
Antiguo 08/11/2008, 06:56
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 8 meses
Puntos: 52
Respuesta: Funciones óptimas en php5

Hola

Tomo nota, gracias por el aporte, lo tendre en cuenta a la hora de programar mis scripts.ç

Un saludo
  #3 (permalink)  
Antiguo 08/11/2008, 08:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Sigo con otro que viene del Perl usado mal en PHP. El preg_match es considerablemente más rápido que ereg y mucho más potente. Por Ejemplo:

preg_match(
"/name=[ ]?(['\"])?((?(1)[^\\1]|[^\s\>])+?)(?(1)\\1|[\s>])/i", $string,
$arr );

"preg_match" tarda 0.26572799682617 segundos en ejecutarse

ereg( "name=[\"']{0,1}([_0-9a-zA-Z]+)[\"']{0,1}", $string, $arr );

"ereg" tarda 1.2171900272369 segundos, 4.7 veces más lento

Las comparaciones de tiempo de ejecución entre una función y otra se realizan con un bucle de 5.000 veces para aumentar el tiempo en segundos y poder medirse.

Última edición por GatorV; 08/11/2008 a las 20:01
  #4 (permalink)  
Antiguo 08/11/2008, 09:23
Avatar de Wilfred  
Fecha de Ingreso: octubre-2008
Mensajes: 110
Antigüedad: 16 años
Puntos: 1
Respuesta: Funciones óptimas en php5

Gracias por la info men!
  #5 (permalink)  
Antiguo 08/11/2008, 10:09
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Funciones óptimas en php5

Cita:
Iniciado por muscularmente Ver Mensaje
(..) El preg_match es considerablemente más rápido que ereg y mucho más potente. Por Ejemplo: (..)
Aparte de lo comentado sobre su rendimiento (que lo desconocía), hay una razón de peso para no usar regex POSIX (ereg y familia). El estandar POSIX no reconoce como alfanuméricos caracteres propios del español y otros idiomas (como las letras acentuadas, la Ñ, la Ç, etc). Y eso es para mí una razón suficiente como para desterrarlas y usar siempre regex PCRE (Perl compatibles, es decir, preg_*).

Para muestra, si queremos comprobar si una cadena está formada enteramente por letras o espacios y usamos:

Código PHP:
<?php
    $cadena 
"Qué tal compañero";
    
$patron "^([[:alpha:]]| )*$";
    
    echo 
"<pre>";
    echo 
eregi"$patron"$cadena ) ? "SI (POSIX)\n" "NO (POSIX)\n";
    echo 
preg_match"/$patron/i"$cadena ) ? "SI (PCRE)\n" "NO (PCRE)\n";
    echo 
"</pre>";
?>
Obtendremos:

Código:
NO (POSIX)
SI (PCRE)
Siendo la misma expresión regular en ambos casos.

Un saludo.

Última edición por Deschamps; 08/11/2008 a las 10:14
  #6 (permalink)  
Antiguo 08/11/2008, 10:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Funciones óptimas en php5

genial Deschamps...

yo también siempre he preferido el uso de preg_* es demasiado bueno!!

suerte...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:14.