High Performance Ruby MVC: Merb
Merb is similar to Rails in many ways. What differentiates Merb from Rails is:
- It has no cgi.rb
- It has a clean room implementation of ActionPack
- It is threadsafe with configurable Mutex Locks (Routing is also threadsafe)
- It has been designed favoring simplicity and clarity over magic
- A light core framework easy to extend through hacks
- No auto-render. The return value of your controller actions is what gets returned to client. You have to explicitly call a render method if you want it.
- Merb's render method just returns a string, allowing for multiple renders and additional flexibility over similar functionality in Rails
- PartControllers allow for encapsulated apps without big performance cost
What's in the pipeline for next releases ?
- Docs, specs, tutorials
- Rubinius compatibility
- More profiling and optimizations
- More tools and creature comforts
Phil draws the conclusion:
Using Evented Mongrels with Merb gives you the best bang for the buck overall when high concurrency is expected [...] be sure you understand your application's usage patterns and not over-engineer your solution. In most cases, running Rails with a standard Mongrel cluster may be just fine for you.
Re: Bad link?
Indeed it seems to be down at the moment.
You can still find a mirror at merb.rubyforge.org/files/README.html
Not just speed...efficiency
The same benchmark, running through Swiftiply to 2 backend processes, on an AMD dual core Athlon 4200+ (so, a little bit faster than the test machine for Phil Misiowiec's benchmarks), with IOWA:
Concurrency of 10: 1076/second
Concurrency of 100: 995/second