Padrino is really nice web framework for Ruby. I have used it for experimental projects.
My work was using latest Padrino framework at work, but extremely unhappy with the its performance (slow response). We had ported the app to Rails 3.1 for better performance. (We will upgrade it to 3.2 soon)
In fact, I think Padrino is pretty ideal for personal and small apps. Not really ideal for medium to large apps.
I am not against the Padrino web framework. I still like it. :-)
So your benchmark only have tested against the small "Hello World" app. Maybe that's why I suggested that Padrino framework is pretty ideal for small/personal/API projects for fastest responses.
Have you tried benchmarking your one of biggest padrino apps?
Yep, speed is 4-6x faster, but most important for me is memory usage is much much less.
On every Rails project I need to use monit/god to stop/start when for xx cycles memory is > 100mb or so. Without that a rails project can sucks 1-2gb of ram.
Isn't quite normal to my standards, in fact generally Padrino doesn't need more than 70mb. But here a lot of work must to be do.
Sorry if I have to ask, what part is not 100% true? You mean that padrino app can be still faster with large app?
You said there are more than "Hello World" benchmarks? I looked at the link that you provided and then looked at this source code of the Padrino app and its still "Hello World":
Not a very very complex use case but a bit more than a `hello world` app.
I love Rails, Im using i.e. ActiveRecord in 90% of my projects. Beside that I ported 162 apps over Padrino not because I've free time to spend but because I need decent performances (without kongfu with mem/redis caching) with less memory usage.
Try to browse rails (minus ActiveRecord) source code and padrino source code to understand what I mean.
I ported my current app from Rails to Padrino and found the performance, in dev and production mode, generally faster than Rails. I made the switch when Rails performance in development mode became unbearable on my machine, although I believe Rails has gotten faster in development mode after subsequent releases. I am quite happy with Sinatra/Padrino and have no reason for switch back anymore.
What even constitutes as a "small" or "large" application?
My current Padrino project is around 2000 LOC, excluding tests. As it has grown more complex, I've broken off larger parts of its functionality into smaller apps within the same project. These apps share some resources -- particularly models -- but in terms of controllers and helpers, they are very much distinct in their roles in the overarching project.
Padrino has changed my mindset on how I approach large projects. Instead of trying to create something massive in itself, I logically separate key parts of the overarching app into smaller apps mounted within the same project.
I question the entire concept of a "large app". When classes are too large, methods are too long, it's generally considered to be sub-optimal code, or poor design, and there's a point where one is expected to break these things down into smaller pieces. Why does this concept not apply to our web apps?
Comments
Padrino is really nice web framework for Ruby. I have used it for experimental projects.
My work was using latest Padrino framework at work, but extremely unhappy with the its performance (slow response). We had ported the app to Rails 3.1 for better performance. (We will upgrade it to 3.2 soon)
In fact, I think Padrino is pretty ideal for personal and small apps. Not really ideal for medium to large apps.
Just my opinion and experience.
Warn: is opinionated
Btw I switched lots of projects from rails to padrino due to the slow performances of rails.
I built a small test suite where you can find that Padrino is upto 4x faster than rails.
Check it out: https://github.com/DAddYE/web-frameworks-benchmark
Feel free to show me that Im wrong.
I am not against the Padrino web framework. I still like it. :-)
So your benchmark only have tested against the small "Hello World" app. Maybe that's why I suggested that Padrino framework is pretty ideal for small/personal/API projects for fastest responses.
Have you tried benchmarking your one of biggest padrino apps?
That's not 100% true, there are more than `hello world` benchs.
Check it out here: https://github.com/DAddYE/web-frameworks-benchmark/tree/more...
Yep, speed is 4-6x faster, but most important for me is memory usage is much much less.
On every Rails project I need to use monit/god to stop/start when for xx cycles memory is > 100mb or so. Without that a rails project can sucks 1-2gb of ram.
Isn't quite normal to my standards, in fact generally Padrino doesn't need more than 70mb. But here a lot of work must to be do.
Sorry if I have to ask, what part is not 100% true? You mean that padrino app can be still faster with large app?
You said there are more than "Hello World" benchmarks? I looked at the link that you provided and then looked at this source code of the Padrino app and its still "Hello World":
https://github.com/DAddYE/web-frameworks-benchmark/blob/more...
I expected to see something more than just Hello World app.
I am trying to see why you are suggesting me that Padrino is better than Rails. :-) Sounds like you are completely against Rails. Maybe I am wrong.
It's quite complicated make a full featured app for all webframeworks, btw look at here: https://github.com/DAddYE/web-frameworks-benchmark/blob/more...
Which is: https://github.com/DAddYE/web-frameworks-benchmark/blob/more...
With a layout: https://github.com/DAddYE/web-frameworks-benchmark/blob/more...
Not a very very complex use case but a bit more than a `hello world` app.
I love Rails, Im using i.e. ActiveRecord in 90% of my projects. Beside that I ported 162 apps over Padrino not because I've free time to spend but because I need decent performances (without kongfu with mem/redis caching) with less memory usage.
Try to browse rails (minus ActiveRecord) source code and padrino source code to understand what I mean.
I ported my current app from Rails to Padrino and found the performance, in dev and production mode, generally faster than Rails. I made the switch when Rails performance in development mode became unbearable on my machine, although I believe Rails has gotten faster in development mode after subsequent releases. I am quite happy with Sinatra/Padrino and have no reason for switch back anymore.
What even constitutes as a "small" or "large" application?
My current Padrino project is around 2000 LOC, excluding tests. As it has grown more complex, I've broken off larger parts of its functionality into smaller apps within the same project. These apps share some resources -- particularly models -- but in terms of controllers and helpers, they are very much distinct in their roles in the overarching project.
Padrino has changed my mindset on how I approach large projects. Instead of trying to create something massive in itself, I logically separate key parts of the overarching app into smaller apps mounted within the same project.
I question the entire concept of a "large app". When classes are too large, methods are too long, it's generally considered to be sub-optimal code, or poor design, and there's a point where one is expected to break these things down into smaller pieces. Why does this concept not apply to our web apps?
+1 ... Divide et impera :D