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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.