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