Foros del Web » Programando para Internet » PHP »

test velocidad "a=$a" vs "a=".$a

Estas en el tema de test velocidad "a=$a" vs "a=".$a en el foro de PHP en Foros del Web. Hola a todos. El otro dia, en otro hilo, salió a tema el utilizar la sintaxis Código PHP: //opcion 1. $sql = "...values('$nombre','$dni','$telefono',.... //opcion 2 $sql=" ... ...
  #1 (permalink)  
Antiguo 11/06/2012, 15:08
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
test velocidad "a=$a" vs "a=".$a

Hola a todos.
El otro dia, en otro hilo, salió a tema el utilizar la sintaxis
Código PHP:
//opcion 1.
$sql="...values('$nombre','$dni','$telefono',....
//opcion 2
$sql="
...values('".$nombre."','".$dni."','".$telefono."',",..... 
En el primer caso, se argumentaba a favor de la comodidad y legibilidad. En el segundo, de la velocidad.

Y como me quedé con la dudad, hize este pequeño script para testear hasta que punto una opción es mas rápida que otra.

Los resultados, en mi servidor, són que la opción 1, a parte de mas cómoda, es mas rápida.
La verdad, me ha sorprendido el resultado. Pensaba que la opción 1 seria mas lenta.
Alguien sabe porque?
Es correcto el test?
alguna argumentación en contra de la opción 1?


Código PHP:
<?php
$campo1
="maria";
$campo2="juan";
$campo3="pepe";
$campo4="felipe";
$campo5="marta";
$campo6="pablito";
$campo7="josefina";
$campo8="paula";
$campo9="manolo";

$t_ini=microtime(true);
for(
$i=0;$i<1000;$i++){
    
$x"el campo 1:$campo1 el campo2:$campo2 el campo3: $campo3 el campo4: $campo4 el campo5: $campo5 el campo 6: $campo6 el campo7: $campo7; el campo 8: $campo8 el campo9: $campo9<br>";
}
$t_fin=microtime(true);
$tiempo1=$t_fin-$t_ini;

$t_ini=microtime(true);
for(
$i=0;$i<1000;$i++){
    
$x"el campo 1:".$campo1." el campo2:".$campo2." el campo3: ".$campo3." el campo4: ".$campo4." el campo5:".$campo5." el campo 6: ".$campo6." el campo7: ".$campo7." el campo 8: ".$campo8." el campo9:"$campo9."<br>";
}
$t_fin=microtime(true);
$tiempo2=$t_fin-$t_ini;
echo 
"<br>tiempo 1: $tiempo1 <br>";
echo 
"tiempo 2: $tiempo2 <br>";
saludos a todos!
  #2 (permalink)  
Antiguo 11/06/2012, 15:11
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: test velocidad "a=$a" vs "a=".$a

hay una diferencia, debes saber que las comillas dobles y simples no son lo mismo, la comillas dobles PHP las "lee" (parsea) en busca de variables, en cambio las comillas simples no las lee, directamente las imprime, has tus pruebas con las comillas pertinentes....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 11/06/2012, 15:16
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

Cita:
has tus pruebas con las comillas pertinentes....
he echo este cambio
Código PHP:
    $x='el campo 1:'.$campo1.' el campo2:'.$campo2.' el campo3: '.$campo3.' el campo4: '.$campo4.' el campo5:'.$campo5.' el campo 6: '.$campo6.' el campo7: '.$campo7.' el campo 8: '.$campo8.' el campo9:'$campo9.'<br>'
..y sigue siendo mas rápido. Es a esto a lo que te referias?
  #4 (permalink)  
Antiguo 11/06/2012, 15:28
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: test velocidad "a=$a" vs "a=".$a

Según las pruebas que yo eh hecho la medición por tiempo en PHP depende de varios factores, no unicamente del core de PHP, si haces varias pruebas los valores cambiarán, en mi caso la mayoría de las veces es mas "rapido" usar comillas simples y escapando las variables, pero todo depende de la carga que tenga el equipo ya en ocasiones los resultados son muy muy dispares...

Nota: y no solo en como imprimir variables, también aplica a otros códigos mas complejos...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 11/06/2012, 15:39
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

Lo he probado en tres servidores diferentes con idénticos resultados.
  #6 (permalink)  
Antiguo 11/06/2012, 16:23
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: test velocidad "a=$a" vs "a=".$a

En el core php5 no se nota mucho la diferencia usar una o la otra.
Tal cual como dice Nemutagk, los test van a depender de muchos factores.

en tu test la segunda utilizar mas recursos, pero en ese caso no se estan evaluando los bloques independientemente.

Si quieres hacer un prueba evalúa cada bloque por separado a ver los tiempos.

Saludos.
  #7 (permalink)  
Antiguo 11/06/2012, 16:32
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

gjx2, saludos ante todo.

No entiendo a qué te refieres con evaluar por bloques. Te refieres a 2 scripts por separado o metido en 2 funciones?
  #8 (permalink)  
Antiguo 11/06/2012, 16:37
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: test velocidad "a=$a" vs "a=".$a

puede que interese leer este post para un uso correcto de las comillas
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #9 (permalink)  
Antiguo 11/06/2012, 16:37
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: test velocidad "a=$a" vs "a=".$a

Retiro lo dicho

Saludos.
  #10 (permalink)  
Antiguo 11/06/2012, 16:56
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

Gracias por tu comentario Isabel.

Sin embargo, despues de leer el link que posteaste,no aprecio ningun error en el uso que le doy a las comillas. Se me pasó algo por alto?

Saludos.
  #11 (permalink)  
Antiguo 12/06/2012, 22:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: test velocidad "a=$a" vs "a=".$a

oscartt67, coincido con Nemutagk en que depende de muchos factores y, a considerar, el principal sería la cantidad de textos a concatenar en un proyecto real, donde, en teoría, los datos no siempre van a ser los mismos como en el ejemplo que mencionas.

Entonces, llegado el caso, deberás evaluar si es más importante la legibilidad (lo que permite modificar el script más fácilmente) o el rendimiento (lo que puede evitar "cuelgues" del servidor).

A la fecha, no me ha tocado enfrentar algo así y, por tanto, prefiero legibilidad.

Por otra parte, si la cadena se usará para salida en pantalla, tal vez sea aún más rápido enviarla directamente:

echo $var1, ' texto 1 ', $var2, ' texto 2... etc. ';

Test de velocidad: http://www.electrictoolbox.com/php-e...concatenation/

Cabe mencionar que si necesitas todo el contenido en una variable puedes recurrir al búfer de salida con las funciones ob_***()
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 13/06/2012, 04:34
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

Triby. Muchas gracias por tu respuesta.

Cita:
...... prefiero legibilidad.
Soy del mismo parecer. Si la diferencia de tiempos fuera significativa, optaria por la opción rápida, pero por diferencias insignificantes, legibilidad sin duda.


Saludos!
  #13 (permalink)  
Antiguo 13/06/2012, 07:32
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: test velocidad "a=$a" vs "a=".$a

Cita:
Iniciado por oscartt67 Ver Mensaje
Gracias por tu comentario Isabel.

Sin embargo, despues de leer el link que posteaste,no aprecio ningun error en el uso que le doy a las comillas. Se me pasó algo por alto?

Saludos.
venia a colación por lo dicho por Nemutagk en el post #2
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #14 (permalink)  
Antiguo 13/06/2012, 10:49
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: test velocidad "a=$a" vs "a=".$a

Gracias isabel.
Verdaderamente el link que posteaste trata muy bien el uso de comillas y variables.

Saludos.

Etiquetas: sql, test, velocidad
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:27.