Today I tried Mikel Lindsaar's Mail gem on CRuby, JRuby and IronRuby.

Installation of each Ruby version and Mail gem was really easy so I will not describe it here. What interested me was how fast was Mail on each Ruby implementation.

I have created a simple mail and saved it as 1.eml.

Date: Thu, 24 Dec 2009 14:37:34 Central European Standard Time
Message-ID: <4b336e9e762a0_a1014263a4689d3@2003-ie7.mail>
Subject: This is a test email
Mime-Version: 1.0
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit

Some text for mail body

This script will read the file, display subject and time elapsed (in seconds).

time =
require "rubygems"
require "mail"
mail ="1.eml")
puts mail.subject.to_s
puts - time

I have executed the script three times for each Ruby implementation. It looks to me that CRuby and JRuby are similar in speed, and IronRuby is way slower.

Test Run CRuby JRuby IronRuby
1 2.594 3.0 9.8125
2 2.109 2.016 7.796875
3 2.11 2.0 7.6875


Tests were run in VMware Fusion 2.0.6 virtual machine, 512 MB RAM, Microsoft Windows Sever 2003 R2 (Standard Edition, Service pack 2).
Host machine is MacBook Pro, 2.4 GHz Intel Core 2 Duo, Mac OS X 10.6.2, 4 GB RAM.

>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

>jruby -v
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]

>ir -v
IronRuby on .NET

Mail version 1.3.4 on all platforms.