Desarrollando con symfony
Rodrigo Fuentealba
darkprox en gmail.com
Mar Jun 26 21:27:50 CLT 2007
El 26/06/07, Ricardo Mun~oz A. <rmunoz en pjud.cl> escribió:
> Rodrigo Fuentealba wrote:
> > El 26/06/07, Ricardo Mun~oz A. <rmunoz en pjud.cl> escribió:
> >
> > Hay varias optimizaciones interesantes que he visto en Symfony y que
> > no he visto en CakePHP.
>
> cuales?
Una sola muestra, y estamos hilando fino altiro (Cristian, te la dedico):
Archivo cake/libs/security.php; línea 141:
for($i = 0; $i < strlen($text); $i++);
en cualquier ciclo for en Symfony, hay algo así:
for($i = 0, $stringlength = strlen($text); $i < $stringlength; $i++)
¿qué se gana? no tienes que calcular strlen cada vez que vas a comparar. Mira:
<?php
function microtime_float()
{
list($useg, $seg) = explode(" ", microtime());
return ((float)$useg + (float)$seg);
}
$cadena = 'TESTEANDO';
$tiempo_inicio = microtime_float();
for($i=0;$i<strlen($cadena);$i++)
{
echo($cadena[$i]);
}
echo("\n");
$tiempo_final = microtime_float();
$tiempo = $tiempo_final - $tiempo_inicio;
echo "Con un FOR simple, me demoro $tiempo segundos\n";
$tiempo_inicio = microtime_float();
for($i=0,$s=strlen($cadena);$i<$s;$i++)
{
echo($cadena[$i]);
}
echo("\n");
$tiempo_final = microtime_float();
$tiempo = $tiempo_final - $tiempo_inicio;
echo "Con Symfony, me demoro $tiempo segundos\n";
?>
Resultado:
darkprox en darkprox:~$ php calculo.php
TESTEANDO
Con un FOR simple, me demoro 0.014724969863892 segundos
TESTEANDO
Con Symfony, me demoro 0.0020818710327148 segundos
> > Lo que le quito a Symfony es que habla más con la base de datos que Cake.
> >
> >> el codigo fuente de la
> >> API podria "mejorar" desde una version a otra sin que cambie la API y
> >> por lo tanto tampoco las aplicaciones!
> >
> > Algo que (comento como dev. de Rails), en Rails no pasa.
>
> que cosa no pasa en Rails?
Pasar de una versión a otra sin que cambie la API y por lo tanto
tampoco las aplicaciones.
> >> ademas, he escuchado comentarios que el codigo fuente de PHP es muy
> >> feazo... pero eso es totalmente irrelevante para el 99% de sus usuarios
> >> (nosotros)!
> >
> > Yep, pero justo aquí hay dos para los cuales sí importa eso: Cristian
> > (SuSE) y yo (Slackware).
>
> hmm... y en que consiste tu dia a dia con respecto a PHP en Slackware?
> me imagino que es aplicar parches y empaquetar nuevas versiones y
> updates? el 1% al que yo me referia desarrolla extensiones (*.so o
> *.dll) con nuevas funcionalidades para el interprete de PHP u otros
> servicios / aplicaciones...
Aplicar parches y empaquetar nuevas versiones y updates no es algo tan
trivial cuando se trata de una distribución, y cuando se trata de
"saber" qué va a pasar con ella. Menos a Slackware, y me imagino que a
ninguna (y el día que sepa que alguna distro aplica parches con la
metodología de "trial and error", te aseguro que seré el primero y no
el único que alegará por ello).
Entre los mantenedores de Slackware, si alguien pretende incluir/sacar
alguna biblioteca, tenemos que mirar el código de los demás paquetes
que se podrían romper y por qué; y ha pasado pocas, veces como para
alegar por aquello, pero las suficientes para haberme quemado las
pestañas sólo porque a alguien se le ocurrió poner goto dentro del
código.
--
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org
Más información sobre la lista de distribución PHP