elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Curiosidades del rendimiento de PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Curiosidades del rendimiento de PHP  (Leído 5,365 veces)
N4X

Desconectado Desconectado

Mensajes: 74



Ver Perfil WWW
Curiosidades del rendimiento de PHP
« en: 3 Enero 2010, 15:17 pm »

PHP Benchmark nace como un sitio en el cual su único objetivo es demostrar que no todos los procesos similares de PHP funcionan a la misma velocidad, podeis visitar la página, pero para aquellos que no les gusta el inglés dejo las partes que me parecieron mas curiosas:


comillas dobles (") contra simples (')

+ 105 %   comillas simples (') en una string vacia: $tmp[] = ''';
+ 102 %   comillas dobles (") en una string vacia: $tmp[] = "";
+ 100 %   simples ('). 20 bytes de texto: $tmp[] = 'aaaaaaaaaaaaaaaaaaaa';
+ 103 %   dobles ("). 20 bytes de texto: $tmp[] = "aaaaaaaaaaaaaaaaaaaa";
+ 102 %   simples ('). 20 bytes de teto y 3 $: $tmp[] = 'aa $ aaaa $ aaaa $ a';
+ 106 %   dobles ("). 20 bytes de teto y 3 $: $tmp[] = "aa $ aaaa $ aaaa $ a";
+ 100 %   dobles ("). . 20 bytes de teto y 3 \$: $tmp[] = 'aa \$ aaaa \$ aaaa \$ a';

Conclusión: en este caso podemos llegar a la conclusión de que ambas formas no suponen una gran diferencia de velocidades y que con las comillas dobles, escapar los carácteres como $ (\$) supone un ahorro de tiempo, mínimo eso si.

foreach() vs for() vs while(list() = each())

+ 100 %   foreach($aHash as $val);
+ 657 %   while(list($val)) = each($aHash);
+ 119 %   foreach($aHash as $key => $val);
+ 688 %   while(list($key,$val)) = each($aHash));
+ 238 %   foreach($aHash as $key => $val) $tmp[] = $aHash[$key];
+ 757 %   while(list($key)) = each($aHash)) $tmp[] = $aHash[$key];
+ 300 %   Get Key-/value-array: foreach($aHash as $key[]=>$val[]);
+ 329 %   Get Key-/value-array: array_keys() / array_values()
+ 381 %   $key = array_keys($aHash);  $size = sizeOf($key); for($i=0; $i < $size; $i++) $tmp[] = $aHash[$key[$i]];

Conclusión: La conclusión mas obvia que podemos sacar es que foreach() es mas rapido que while() y
for()


acabo con este que me pareció muy muy curioso:

Test del bucle For

El test se orienta a, si el rendimiento cambia al calcular el tamaño de una variable antes del for o en el momento que declaramos el for.

Ejemplos:
antes del for: "for ($i=0; $i<$tamaño; $i++)"
en el for: "for ($i=0; $i<sizeOf($x); $i++)"

+ 100 %      Antes del for con count()
+ 50058 %   En el for con count()
+ 100 %      Antes del for con sizeof()
+ 50421 %   En el for con sizeof()

Conclusión: este es quizá el ejemplo mas claro a la hora de programar nuestras aplicaciones, hemos de tener muy en cuenta que el tamaño deveriamos calcularlo antes de declarar el for() para así agilizar sustancialmente nuestra aplicación.

Sin mas os animos a visitar la página del autor: http://www.phpbench.com/

Entrada original: My blog: Syntax Error


En línea

turion

Desconectado Desconectado

Mensajes: 153



Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #1 en: 3 Enero 2010, 16:04 pm »

grandioso ahora la pregunta del millon como se obtienen esos datos?? es mas que nada por curiosidad no por poner en entredicho lo publicado xDD


En línea

N4X

Desconectado Desconectado

Mensajes: 74



Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #2 en: 3 Enero 2010, 18:02 pm »

jajaja pues con funciones de php por supuesto xD

si vas a la web del creador dice:

Citar
NOTE: The microtime() method for testing out these tests has only been utilised for simplicities sake. If anything more advanced was used, those whom are just starting out on their PHP journey would have difficulties understanding.

y si le das a "view code" de cualquiera de sus codes publicados puedes ver como la usa:

Código
  1. <?php
  2.  
  3. // Test Source
  4. function Test4_1() {
  5.    global $x;
  6.  
  7.    /* The Test */
  8.    $t = microtime(true);
  9.    $size = count($x);
  10.    $i = 0;
  11.    while($i < 1000) {
  12.        $alias = $aSingleDimArray[$i];
  13.        ++$i;
  14.    }
  15.  
  16.    return (microtime(true) - $t);
  17. }
  18.  
  19. ?>
  20.  
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Curiosidades del rendimiento de PHP
« Respuesta #3 en: 3 Enero 2010, 19:30 pm »

Que bien  :D

Yo suelo utilizar Benchmarking en Perl cuando trabajo con el modulo DBI para base de datos. Asi me entero cuanto tarda mi codigo Perl en obtener unos datos o realizar una consulta a los datos en el Buffer de la libreria DBI.

Benchmark es un modulo no se en PHP pero en Perl viene por defecto con el interprete, y es bastante efectivo para enterarse del consumo de CPU y memoria del codigo como tal.

Buen aporte para PHP digo  ;)  ya imagino que muy pocos utilizan Benchmark para optimizar sus codigos.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #4 en: 4 Enero 2010, 07:09 am »

Sería bueno comprarar la ejecución de un pequeño script con un objeto clase orientado al POO y otro con arrays multidimensionales xD
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #5 en: 4 Enero 2010, 07:12 am »

Sería bueno comprarar la ejecución de un pequeño script con un objeto clase orientado al POO y otro con arrays multidimensionales xD

calla xD
En línea

Ojo por ojo, y el mundo acabará ciego.
H4RR13R


Desconectado Desconectado

Mensajes: 1.229


Pienso... luego existo


Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #6 en: 4 Enero 2010, 08:29 am »

Sería bueno comprarar la ejecución de un pequeño script con un objeto clase orientado al POO y otro con arrays multidimensionales xD

calla xD


más que bueno divertido xd, debe ser muy bestia la diferencia de uso de procesador que se usa en POO y arrays multidimensionales, en este último caso sería mucho mayor.... xD

P.D: Buen post, me documentaré cuando tenga tiempo de este tema ya que me interesa :D
En línea


mi frase: Un hacker no dice lo que sabe un lammer no sabe lo que dice
fede_cp


Desconectado Desconectado

Mensajes: 527


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #7 en: 4 Enero 2010, 12:24 pm »

lo que estaria bueno seria, que con un script parecido a ese, sacar el rendimiento de un programa entero en php, y con el resultado ver si lo hicimos lo mas "ahorrativo" posible, y sino, si lo hicimos con muchas cosas que alentizan el script



saludos!
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Curiosidades del rendimiento de PHP
« Respuesta #8 en: 4 Enero 2010, 16:38 pm »

Es bueno optimizar el codigo o al menos intentarlo. Optimizar el codigo solo funcionara para conocer el lado de consumo del codigo como tal.. esto es totalmente independiente de las consultas a la base de datos (Sobretodo por lo que les expuse anteriormente, donde los datos se guardan en un buffer de la libreria que trabaja con el motor de DB). Es un proceso un poco extenso si te dedicas al tema, pero como es algo que me encanta hacer  :D  suelo depurar primero base de datos con profiling, luego al codigo fuente con Benchmark  ;)

fede_cp si quieres obtener el rendimiento de un programa entero como dices, debes crear un archivo que funcione de 'main' o principal y dentro de este inicializar el objeto Benchmark, y ir llamando las funciones de modulos por modulos el caso es que cuando termines de llamar funciones de modulos, finalizar el objeto Benchmark he imprimir el resultado en pantalla o enviarlo a un archivo  ;)
En línea

N4X

Desconectado Desconectado

Mensajes: 74



Ver Perfil WWW
Re: Curiosidades del rendimiento de PHP
« Respuesta #9 en: 4 Enero 2010, 18:18 pm »

como dice tifa ese es el procedimiento.

y el artículo en sí sirve para tomar "buenas prácticas" y por ejemplo pasar las querys por un foreach y no un while, personalmente no me gusta pasarle el while.

La idea es que cuando acabas un programa le haces el Benchmark y miras cuanto tarda y si crees que es normal...

entonces te dedicas a hacerlo mas ligero cambiando aquellas funciones que, usando otras, produce un mismo resultado en menor tiempo  ;-)


saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comandos y curiosidades en tu terminal
Noticias
wolfbcn 0 2,575 Último mensaje 19 Febrero 2011, 18:05 pm
por wolfbcn
Curiosidades de Facebook
Noticias
wolfbcn 0 2,465 Último mensaje 19 Junio 2011, 19:02 pm
por wolfbcn
clonar wifi? curiosidades WPA « 1 2 »
Hacking Wireless
Free4all 13 12,089 Último mensaje 8 Marzo 2012, 16:42 pm
por Free4all
problema rendimiento cpu 100%
Windows
nightcode 2 2,336 Último mensaje 14 Septiembre 2020, 16:45 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines