martes, 24 de abril de 2012

Mejorando la performance para Yupp v0.5

En un artículo anterior que tiene casi un año y medio, estuvimos testeando la performance de Yupp PHP Framework. Ahora en vistas de una nueva liberación del framework, varias optimizaciones se han hecho, tanto a nivel de reorganización de código como a nivel de micro optimizaciones de PHP.

En el artículo anterior veíamos los siguientes resultados:

Finished 1000 requests 
Server Software:        Apache/2.2.11
Server Hostname:        localhost
Server Port:            80 

Document Path:          /YuppPHPFramework/apli/entrada/index
Document Length:        33 bytes 

Concurrency Level:      10
Time taken for tests:   181.797 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    995
Total transferred:      449790 bytes
HTML transferred:       33000 bytes
Requests per second:    5.50 [#/sec] (mean)
Time per request:       1817.969 [ms] (mean)
Time per request:       181.797 [ms] (mean, across all concurrent

requests)
Transfer rate:          2.42 [Kbytes/sec] received 

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.5      0      16
Processing:  1031 1810 445.8   1672    4844
Waiting:     1031 1810 445.9   1672    4844
Total:       1031 1810 445.8   1672    4844 

Percentage of the requests served within a certain time (ms)
  50%   1672
  66%   1828
  75%   2063
  80%   2344
  90%   2516
  95%   2641
  98%   2719
  99%   2828
 100%   4844 (longest request)




Estos son los nuevos resultados:

Finished 1000 requests

Server Software:        Apache/2.2.11
Server Hostname:        localhost
Server Port:            80
Document Path:          /YuppPHPFramework/biblioteca/libro/list
Document Length:        3053 bytes
Concurrency Level:      10
Time taken for tests:   46.109 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    995
Total transferred:      3471784 bytes
HTML transferred:       3053000 bytes
Requests per second:    21.69 [#/sec] (mean)
Time per request:       461.094 [ms] (mean)
Time per request:       46.109 [ms] (mean, across all concurrent requests)
Transfer rate:          73.53 [Kbytes/sec] received


Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   219  459 158.1    453    4188
Waiting:      219  459 158.1    453    4188
Total:        219  459 158.1    453    4188


Percentage of the requests served within a certain time (ms)
  50%    453
  66%    484
  75%    516
  80%    531
  90%    563
  95%    672
  98%    719
  99%    766
 100%   4188 (longest request)


Conclusiones:

Las pruebas se hicieron en la misma computadora, así que no hay variaciones de hardware.

Lo que podemos notar es que aunque las nuevas pruebas transfieren más datos, se aumentó el nivel de concurrencia de pedidos atendidos en un 75% (de 5.5 pedidos por segundo a 21.69 pedidos por segundo).

En valores globales, se bajó el tiempo de atención global de pedidos a un 27% (de 99% de los pedidos atendidos en menos de 2828 ms bajó a 766 ms).

Yupp está mejorando y se demuestra en los números. Además se debe considerar que se agregaron características y funcionalidades, por lo que el framework en si es un poco más pesado que en el momento de la primer prueba.


viernes, 6 de abril de 2012

Novedades sobre el estado del proyecto

Estimados, si bien hace un tiempo que no hay novedades sobre Yupp, quiero comentarles que el desarrollo nunca paró, aunque se está dando con más lentitud que antes.

En este momento estamos trabajando duro en la aplicación YuppCMS, y dentro de poco vamos a liberar nuevas versiones, tanto del CMS como de Yupp Framework.

Las novedades en Yupp serán muchísimas correcciones y mejoras, logrando un framework cada vez más estable, robusto y seguro. Algunos de los cambios más notables son el agregado de transaccionalidad para las consultas a la base de datos, actualización de las librerías javascript integradas al framework, quitamos el soporte para WebFlows, y optimizamos el código para obtener mejor performance.

Sobre el CMS, ya está tomando forma, tiene casi todas las funcionalidades básicas desarrolladas, y es bastante funcional. Incluso ya hay un portal web que lo usa: http://openehr.org.es/

Ahora que tenemos estas dos herramientas bastante desarrolladas, estamos buscando socios para implantarlas en proyectos concretos. Nuestro objetivo es poder difundirlas y utilizadas, porque es la forma en la que pueden seguir desarrollándonse y evolucionar.
Si estás interesado en los proyectos, envíame un correo a pablo.swp[arroba]gmail[punto]com. Nos interesa vincularnos con empresas de desarrollo de software, desarrollo de aplicaciones web y empresas de diseño web. También nos interesa vincularnos con freelancers en estas áreas. En ambos casos podemos brindar capacitación, soporte, apoyo en proyectos, asesoría tecnológica, etc. Estas son herramientas que buscan productividad en el desarrollo de software y aplicaciones web en particular, además de servir para prototipado de proyectos de mediano o gran porte (para mostrarle algo andando al cliente en poco tiempo).