This site is dedicated to further knowledge about creating Ruby on Rails applications professionaly. We discuss Ruby on Rails features from a performance angle, discuss Ruby on Rails performance analysis methods, provide information on Ruby on Rails scaling and benchmark Ruby on Rails performance for each release. We discuss best practices for selecting Ruby on Rails session containers, fragment and page caching and optimizing database queries.

Ruby/Rails Consultants wanted

Posted 23 Jan 2008

I need 2 additional consultants for the Rails CRM project I’m managing for Autoscout24.

It’s a massive Rails application with 198 models and 60 controllers. A large part of the code base consists of business logic.

Requirements:

  • brightness
  • ability to get things done
  • willingness to dive into an existing code base, fix stuff and extend existing functionality
  • good social skills
  • ability to speak English (German is a plus)

If you’re interested, send me your credentials.

The contract duration would be 6 months initially.

This is an on site project in Munich, telecommuting is unfortunately not possible.

Update: the positions have been filled.

View Comments

Writing Efficient Ruby Code - Short Cut

Posted 28 Dec 2007

This has been a busy year for me, but I have finally managed to complete the first chapter of my book “Performance Rails” and Addison Wesley has published it as a digital short cut.

It’s a collection of performance patterns (and anti patterns) which I have successfully applied to speed up the Rails framework. I hope you will find it useful.

Update: here some comments by readers of the short cut:

View Comments

Rails Edge Performance

Posted 18 Sep 2007

Listening to David's RailsConf Europe 2007 keynote, I've learned that he's going to a release a beta version soonish. He's asked me to do some benchmarking, comparing the performance of edge Rails to the latest stable branches. Here's a chart:

stable11 is the current svn version of branch 1-1-stable, stable12 is current version of 1-2-stable branch and edge is the current version of Rails trunk. Numbers are requests per second (measured on my MacBook during David's talk).

If you're a numbers type, these are the numbers:

page c1 totalc2 total c1 r/sc2 r/s c1 ms/rc2 ms/r c1/c2
empty 0.947091.05049 1055.9951.9 0.951.05 0.90
welcome 1.228781.34536 813.8743.3 1.231.35 0.91
recipes 1.372141.50364 728.8665.1 1.371.50 0.91
my_recipes 1.369581.49912 730.2667.1 1.371.50 0.91
show 3.469444.27918 288.2233.7 3.474.28 0.81
cat 3.726754.58788 268.3218.0 3.734.59 0.81
cat_page5 3.856244.68700 259.3213.4 3.864.69 0.82
letter 3.699704.54140 270.3220.2 3.704.54 0.81
all requests 19.6697123.49406 406.7340.5 2.462.94 0.84
GC statistics c1 totalc2 total c1 #gcc2 #gc c1 gc%c2 #gc% c1/c2
2.276573.09640 21.025.0 11.5713.18 0.74

c1: 1.2-stable, c2: edge, r/s: requests per second, ms/r: milliseconds per request

I haven't had time to analyze the code, but it seems that anything loading a large number of active record objects takes a rather large performance hit.

I hope we can improve performance before 2.0 gets finally released. Unfortunately, I have almost no time to work on this. However, if anyone has a performance patch, I can look into the it.

View Comments

Rails Consultant wanted

Posted 06 Jun 2007

I’m looking for an experienced Rails consultant to complement the team working for Autoscout24 on the International Sales Synergy Project which I am managing.

Requirements:

  • brightness
  • ability to get things done
  • willingness to dive into an existing code base, fix stuff and extend existing functionality
  • good social skills
  • ability to speak English (German is a plus)

If you’re interested, send me your credentials.

Update: the open position has been filled. Thanks for sending in your emails.

View Comments

New Railsbench Release (0.9.2)

Posted 01 Apr 2007

A new version of railsbench has been released. Benchmarking POST requests is now supported, benchmark specific session data can be specified in the benchmark config file and ERB can be used as well.

  • added POST support:
        search:
          uri: /search
          method: post
          post_data: category=dessert
    
    • method defaults to get
    • post_data will be url encoded by railsbench
  • allow specification of session_data in benchmarks.yml:
        benchmark_name:
          uri: /
          session_data:
             user_id: 1
          post_data: category=dessert
    
  • load benchmarks.yml using ERB. Example: retrieve login ids using Rails)
        admin_interface:
          uri: /admin
          session_data:
            user_id: <%= User.find_by_name('admin').id %>
    
  • use benchmark names instead of urls in raw data files, old files can be converted using script convert_raw_data_files. change was required by post support
  • copy environments/production.rb to environments/benchmarking.rb, instead of providing a fixed one
  • don't create a broken benchmarks.yml file when running railsbench install
  • perf_plot and perf_plot_gc accept -geometry parameter, for exact dimensioning of the produced .png file
  • use -font_size=12 for setting font size when generating graphs
  • use 'perf_plot -colors=color1,color2,...' to get a different color set
  • use 'perf_plot -out=name' to write graph to file 'name'
  • new script perf_table: create a tabular overview of perf data
  • added -colorize option to perf_html, which results in green and red backgrounds in the factor columns
  • added -theme option to perf_plot

Happy benchmarking!

View Comments

Older posts: 1 2 3 4 5 6 7 8 9