Foros del Web » Programando para Internet » PHP »

Eficiencia: uso o no regexpr ?

Estas en el tema de Eficiencia: uso o no regexpr ? en el foro de PHP en Foros del Web. Hola.... queria plantear que he leido muchas veces que usar expresiones regulares exige al CPU pero mi duda es..... y si para no usar funciones ...
  #1 (permalink)  
Antiguo 08/02/2009, 11:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta Eficiencia: uso o no regexpr ?

Hola.... queria plantear que he leido muchas veces que usar expresiones regulares exige al CPU pero mi duda es..... y si para no usar funciones como ereg() o preg_match() que son nativas...... uso varias mas de las del tipo strstr(), que seria mas lento ? cual metodo mas eficiente ?

Para determinar si una palabra es una "version" de algo........ me esforcé en no usar ereg() y preg_match pero bueno... quizas sea menos eficiente despues de todo:

Código PHP:
<?
Function is_num_char($char){ 
 
$c ord($char[0]);  
 return ((
strlen($char)==1) && ($c>=48) && ($c<=57));
}

Function 
is_version_word($str){ // intentar con preg_match
 
$first $str[0]; 
 
$sub_str substr($str,1);
 
$str strtolower($str[0]).$sub_str// la primera debe ser minuscula
 
$first_ver = ($str[0]=='v'); 
 
$first_num is_num_char($str[0]);

 
$sub_after_ver substr(strstr($str'v'),1); 
 
$dot strstr($sub_str'.');  
 
$caso1 = (($first_ver) and (is_num_char($sub_after_ver[0])));  // v2  v1.0  
 
$caso2 = (($first_num) and ($dot));  // 10.0.12.36
 
 
return (($caso1) OR ($caso2));
}

$cadena "7.04a";
echo 
var_dump(is_version_word($cadena));
?>
Ustedes que opinan ? que es mejor ? un par de eregs o todas las funciones "rapidas"que utilice ?

Valoro su opinion!

Cita:
v8.0.3.28325
v1.0
v8.1
3.9
9.7
v2.1.358
4.0.0.1
10.0.12.36
7.04a
... son todas "versiones" mientras que "2000" como Windows 2000, tambien lo seria.... no ? bueno... no se porque no lo consideré asi
__________________
Salu2!
  #2 (permalink)  
Antiguo 08/02/2009, 16:32
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Eficiencia: uso o no regexpr ?

Pero si no ha pasado ni 4 horas desde el primer mensaje, y además es domingo .

"Eficiencia" es un término muuuuuy relativo. Y es que hay varios lados desde donde se puede ver. Te refieres a la carga del servidor? A la legibilidad del código? Al resultado final? Tiempo de ejecución?. Por otro lado hay miles de cosas más a considerar, como por ejemplo el contexto en el que se ejecutará esa función. Si vas a ejecutarla un par de veces, tiene sentido "pensar" mucho en ello?

Yo te diría que es más práctico hacerlo con expresiones regulares. Por qué? Simplemente porque me facilita la lectura del código y su modificación posterior. Pero eso es para mí.

Todos los procesos exigen, y la demanda de recursos de determinado proceso nunca es constante. Tu código es eficiente cuando tú decides que lo es.


Última edición por okram; 08/02/2009 a las 19:33 Razón: Horrores ortográficos
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:47.