Re: [PHP-ES] testear performance, mejorar un framework
[email protected] (Yago Ferrer)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
Hola Gerardo Benitez,
me gustaría ampliar la recomendación de Carlos Medina.
Profiling con microtime:
Puedes empezar por crear tus propias herramientas de profiling. Es muy
sencillo, empieza por calcular cuanto tiempo tardan en ejecutarse funciones,
consultas a la db, parseado de ficheros, etc. Utiliza microtime(true) para
calcular el tiempo de ejecución. (ver ejemplo 2. en
http://php.net/manual/es/function.microtime.php)
Número de ejecuciones:
¿Cuantas veces estás ejecutando el mismo método o función en cada petición?
Idealmente sería una vez, pero quizá no es cierto. Utiliza herramientas como
XDebug para trazar el número de ejecuciones por función o método.
http://xdebug.org/docs/execution_trace XDebug 2 tiene otras interesantísimas
herramientas de profiling que te sugiero revisar con detalle.
Número de consultas a la DB:
Si estás realizando consultas a datos en la base de datos que prácticamente
son estáticos y que cambian muy poco. Te recomiendo el uso de Memcache para
liberar estrés a tu motor de base de datos. Memcache reserva
un espacio en memoria RAM donde puedes guardar valores
Memcache::set("clave", "valor", false, tiempo_expiración) y obtenerlos
Memcache::get("clave") (ver http://www.php.net/manual/es/class.memcache.php
)
También es aplicable a parseado de XML u otros canales de información.
Refactoring y UnitTesting:
Si hablas con cualquier programador experimentado no importa el ramo, te
mencionará lo importante que es usar UnitTesting y sus ventajas. En PHP
puedes utilizar PHPUnit para crear tus 'testing cases' para asegurarte que
todos los métodos y funciones realizan exactamente lo que esperas.
Ponte al día:
Para finalizar te recomiendo la lectura de este libro que acaba de salir:
http://www.amazon.com/Pro-PHP-Refactoring-Francesco-Trucchia/dp/1430227273/
Saludos!
Yago
---------------------------
Ayúdanos a traducir el manual de PHP en: [email protected]
2010/7/14 Gerardo Benitez <[email protected]>
> Hola a todos,
>
> Estoy buscando formas de detectar y mejorar puntos flojos de un sistema, o
> puntos donde la ejecucion de un script se hace lenta.
>
> El punto es este, nos gustaria mejorar un framework de desarrollo que
> tenemos, por eso querria conocer como medir y detectar donde el codigo, o
> lo
> que sea, se podria mejorar, y esto no lo quiero limitar solo a codigo, por
> que por ahi no se trate solo de codigo, sino tambien de configuracion de
> servers, base datos etc.
>
> Para no hacerla muy larga, me gustaria que me cuenten si conoce como
> detectar los puntos flojos.
>
>
> Gracias de antemano.
>
>
>
> --
> Gerardo Benitez
>
--
Yago Ferrer