Practical Intro Merb

50 %
50 %
Information about Practical Intro Merb

Published on October 14, 2008

Author: pageman

Source: slideshare.net

Description

from http://www.mindbucket.com

Merb, not rails? ! A practical introduction to a new framework.

Intro to merb

What is merb? • MVC Framework. • Similar to Rails. • Lightweight, extensible, fast.

Merb Ideology • Hacker-friendly. • Core should be small, plugins bountiful. • Code should be as simple as possible. • Code should not be “magical.”

Merb is like rails • Application structure is very similar • Can use ActiveRecord

What does merb-core include? • rack-based request handling • session handling • before / after filters • layouts / views with erb • routing

What does merb-core include? • gem-based plugins • mailers • partials • exceptions • generator for controllers, and models (integrates with your chosen ORM).

What is elsewhere? • an ORM (can use ActiveRecord, DataMapper, Sequel) • form helpers such as form_for (merb_helper) • ActiveSupport and all those little ruby extensions (extlib?)

What is elsewhere? • flash (merb_has_flash and redirect :message) • redirect(quot;/posts/34quot;, :message => { :notice => 'Post updated successfully!' }) • scaffolding • caching (merb-cache) • ajax library (merb_jquery)

DataMapper • Thread-safe. • Supports data stores you don’t manage. • Optimizations in eager-loading, lazy-loading, etc.

What do we need helper functions for? • Why not just use HTML for templating instead of all those helper functions? • Why not just use JQuery for AJAX instead of all those AJAX helper functions?

Thread-safety • Merb is thread-safe now. • Rails will be thread-safe in 2.2. • What does that mean? http:// blog.headius.com/2008/08/qa-what-thread- safe-rails-means.html

Considerations • Does your app block? • File uploads • Remote HTTP calls • Facebook app: 1-2s wait time? • Do you have native threads? • JRuby / C ruby differences

Instances Required Merb Rails C MRI, one core, no blocking 1 1 C MRI, one core, 80% blocking 1 5 C MRI, two cores, no blocking 2 2 C MRI, two core, 80% blocking 2 10 Jruby, one core, no blocking 1 1 Jruby, one core, 80% blocking 1 5 Jruby, two cores, no blocking 1 2 Jruby, two core, 80% blocking 1 10 Jruby, 16 cores, 80% blocking 1 80

Case study

The Project • CMS for Faculty. • Keeps track of courses, education, biography info, etc. • Deployed to Tomcat.

Requirements • 2500 faculty websites. • 5 concurrent backend users. • 500 users per day on the public facing pages.

Can Rails handle that? • One process per file upload? • RAM requirements?

Why merb? • Thread-safe. • Low memory footprint. • ???

Why JRuby? • Authentication integration using JRadius • Java platform lowers IT stress level.

What is development like? • There are no books... yet. • The codebase is changing. • Smaller userbase than rails. • If you are doing anything weird, be prepared to corepatch!

Problems • File upload broken in Tomcat deploy. • Partial behavior is totally weird. • Render syntax changed / broke export code. • Activerecord-jdbc mysql quote error. • String concurrency problem??

Other Issues • acts_as_list had to be extracted from ActiveRecord files and manually included in init.rb.

Post-mortem

Speed Comparison • Test with simple merb / rails apps using ActiveRecord • Tests using ab -n 10000 • Testing serially, not concurrently. • Tested on this MacBook Pro

C MRI Mongrel • Merb: 170 requests / second • Rails: 32 requests / second

JRuby Tomcat • Merb: 69 requests / second • Rails : 121 requests / second

JRuby Mongrel • Merb: 104 requests / second • Rails: 29 requests / second

JRuby Glassfish • Merb: 106 requests / second • Rails : 125 requests / second

What is the deal? • JRuby thread pool, instead of thread instantiation? • Default session handling? • Overspinning threads in app server? • Incorrect JIT compilation?

Tomcat Memory Usage • Merb: ~30 MB for all threads • Rails: ~60 MB+ additional memory per process • (Tested on Tomcat)

Was it worth it? • Thread-safety is a minor advantage when it comes to file uploads. • Merb uses less memory. • Merb is slower than rails. • Merb may die on string thread-safe bug until JRuby / Merb team fix it.

Conclusion

Consider merb if... • you’re writing a small tool. • you have limited memory requirements. • you like trying new ORMs. • you need fast performance (and you’ve figured out why it runs so slow on JRuby). • you like hacking about in frameworks.

Upcoming • Merb 1.0 is released Oct 11-12. • MerbCamp is in San Diego Oct 11-12. • Merb in Action book (2009?).

Available • I’m available for contracts again. Talk to me here, at 408-646-2240 or paulboone@mindbucket.com. • http://www.mindbucket.com/

Add a comment

Related presentations

Related pages

Practical Intro Merb - Technology - documents.mx

1. Merb, not rails? ! A practical introduction to a new framework. 2. Intro to merb 3. What is merb?• MVC Framework. • Similar to Rails ...
Read more

practical_intro_merb.pdf - 下载频道 - CSDN.NET

下载频道 > 资源分类 > 开发技术 > Web开发 > practical_intro_merb.pdf practical_intro_merb.pdf glitch_wang2009-04-02 上传. practical_intro ...
Read more

Merb For The Enterprise - Technology - documents.mx

Practical Intro Merb. Intro to Merb. Architecture Openstack for the Enterprise. Social Selling for the Enterprise. Login or Join. Processing Login successful.
Read more

coderwall.com

{"protip":{"public_id":"sw6cfw","title":"Practical Intro Merb","body":"http://www.slideshare.net/slideshow/embed_code/656977","html":"u003cpu003eu003ca ...
Read more

opencv-intro.pdf - 专业指导 - 课程资源 - 码农网(全站资源免积分下载)

opencv-intro.pdf opencv-intro.pdf(pdf文档,600.00KB,免5 积分) 赞助商链接. 下载信息 ... practical_intro_merb.pdf: merb: pdf ...
Read more

practical_intro_merb.pdf - Web开发 - 软件开发 - 码农网(全站资源免积分下载)

practical_intro_merb.pdf merb ... practical_intro_merb.pdf(pdf文档,67.25KB,免1积分) 赞助商链接
Read more

practical_intro_merb.pdf - 下载频道 - CSDN.NET

html后台模板; 微信公众平台开发文档2016最新版; activate-power-mode; Java Swing 扁平化的聊天程序源码; intellij idea 15.0.2 破解
Read more