El objetivo de este artículo, realizado originalmente por , es encontrar el mejor framework Ruby para una aplicación muy básica. Utilizaremos las últimas versiones de los entornos Sinatra, Padrino, Goliat y RoR.

Para correr las pruebas, se utilizó la siguiente infraestructura y configuraciones: ApacheBench 2.4.3 ab -n 1000 -c 100 localhost , un 2,3 GHz Intel Core i5 Sandy Bridge CPU , 4GB de DDR3 1333MHz RAM, 120 GB SSD Intel 330 , OS X Mavericks 10.9.1 , Ruby 2.0.0p247 y MySQL 5.6.14 en un entorno de desarrollo Sinatra. Las tablas a continuación contienen datos sobre el tiempo que se tarda en procesar 1.000 peticiones.

 

Sinatra 1.4.4

Web Server No Views and DB Views (Slim) Views (Slim) + MySQL (Sequel)
WEBrick 1.6.1 3.663 ms 8.594 ms 8.931 ms
Thin 1.6.1 0.626 ms 5.730 ms 7.159 ms
Unicorn 4.8.1 1.651 ms 8.240 ms 8.235 ms

 

Vamos a empezar con Sinatra. Resultó que Unicorn funciona más rápido con MySQL y Views que con sólo Views, ya que la diferencia es muy pequeña ( 0,005 s ), esto podría ser debido a un error.

Para eliminar cualquier inexactitud, volvemos a comprobar todos los resultados controvertidos muchas veces y tenemos valores bastante estables. Pero atención, se debe tener cuidado al construir aplicaciones de alta carga, ya que cualquier pequeño cambio pueden hacerlos más lentos. Recomendamos que siempre ejecute las pruebas en el servidor Web que desea utilizar en la producción.

Ya que Thin ha demostrado los mejores resultados, manteniendo la aplicación muy simple, decidimos utilizarla para el resto de las pruebas.

Padrino 0.11.4

Cache No Views and DB Views (Slim) MySQL (Sequel) Views (Slim) + MySQL (Sequel)
No cache 0.729 s 6.663 s 1.388 s 7.372 s
Memory 0.662 s 6.218 s 1.170 s 7.140 s

 

Aunque el framework Padrino está construido sobre Sinatra, con un montón de características útiles, como en Rails, su rendimiento sigue siendo similar a la de una aplicación limpia de Sinatra. Esta es una muy buena noticia para nosotros.

Goliath 1.0.2

No Views and DB Views (Slim) MySQL (Sequel) Views (Slim) + MySQL (Sequel)
2.075 s 7.477 s 4.314 s 10.184 s

 

Los resultados de Goliath se ven un poco extraños, porque esperábamos que este fuera el marco más rápido, gracias a su servidor HTTP incorporado. Si lo prueban y obtienen resultados diferentes, por favor no duden en señalarlo que en los comentarios con las características de su versión del test.

Rails 4.0.2

No Views and DB Views (Slim) MySQL (Sequel) Views (Slim) + MySQL (Sequel)
1.539 s 1.790 s 2.248 s 2.501 s

 

También decidimos testear Rails 4.0.2. Para las pruebas, habilitamos las clases de almacenamiento en caché en development.rb y deshabilitado sesiones y protección contra la falsificación. También utilizamos el toolkit de base de datos Sequel en lugar de ActiveRecord para que los resultados fueran más confiables. Como puede verse, resultó estar muy cerca de Goliat, y hasta un poco mejor.

Pueden mirar las aplicaciones que he creado para los testeos para asegurarse que son muy similares.

Confiamos en que esta información los ayude a elegir el framework Ruby correcto para su aplicación.

También puedes leer el artículo completo en inglés.

Leandro Fridman

I work in Altoros since 2012. BA in Communications. I scanned the radio, television and print media. During the 2013 finished the Master Integration Consulting IT Organizations in the Polytechnic University of Valencia, Spain. Faculty of Journalism and Communication career at UNL. Currently, I take my passion for technology and my training in communication and coordinate projects which relate to these areas. And if not related, then finding coordinate the relationship. I also like photography and sports.

Facebook Twitter LinkedIn