<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Our Geek Space &#187; performance</title>
	<atom:link href="http://blog.moove-it.com/category/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.moove-it.com</link>
	<description>be free to express yourself...</description>
	<lastBuildDate>Fri, 23 Jul 2010 15:35:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ruby Benchmarks</title>
		<link>http://blog.moove-it.com/206/</link>
		<comments>http://blog.moove-it.com/206/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 21:46:59 +0000</pubDate>
		<dc:creator>Gian Zas</dc:creator>
				<category><![CDATA[moove-it]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[ruby performance benchmarks]]></category>

		<guid isPermaLink="false">http://blog.moove-it.com/?p=206</guid>
		<description><![CDATA[One of the most popular rants against ruby are based on its not so good performance.
Actually has been made improvements on this topic, specially in the new Ruby implementation (Ruby 1.9) based on the YARV virtual machine.
JRuby (Ruby over JVM implementation) has been focused in its performance from its lastest releases. Here at moove-it we [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most popular rants against <span style="color: #333399;"><strong>ruby</strong></span> are based on its not so good <span style="color: #333399;"><strong>performance.</strong></span></p>
<p>Actually has been made improvements on this topic, specially in the new Ruby implementation (<strong><span style="color: #333399;">Ruby 1.9</span></strong>) based on the <strong><span style="color: #333399;">YARV </span></strong>virtual machine.</p>
<p><strong><span style="color: #333399;">JRuby</span></strong> (Ruby over <span style="color: #333399;"><strong>JVM </strong></span>implementation) has been focused in its performance from its lastest releases. Here at moove-it we are exploring the posibility of use <span style="color: #333399;"><strong>Rails </strong></span>over JRuby in some <strong><span style="color: #333399;">JEE </span></strong>application servers, so we need some facts about JRuby performance (and other topics like gems compatibility, etc)</p>
<p>The Ruby community has put a set of benchmarks at ruby1.9 trunk: <a title="http://svn.ruby-lang.org/repos/ruby/trunk/benchmark/" href="http://svn.ruby-lang.org/repos/ruby/trunk/benchmark/"><span style="color: #333399;">http://svn.ruby-lang.org/repos/ruby/trunk/benchmark/</span></a></p>
<p>So, we test with these benchmarks and here are the results!.</p>
<p>The code that run the benchmarks is like that:</p>
<pre>block_to_benchmark = lambda { load BENCHMARKS_DIR + '/' + filename}
Benchmark.measure &amp;block_to_benchmark</pre>
<p>(yes, we are using the benchmark module bundled with the ruby standard lib)</p>
<table style="border-collapse: collapse; height: 1054px;" border="0" cellspacing="0" cellpadding="0" width="666">
<col style="width: 143pt;" width="190"></col>
<col style="width: 60pt;" span="4" width="80"></col>
<col style="width: 68pt;" width="90"></col>
<tbody>
<tr style="height: 12.75pt;" height="17">
<td class="xl25" style="height: 12.75pt; width: 100pt;" width="120" height="17">
<p style="text-align: left;"><strong>Benchmark<br />
</strong></td>
<td class="xl25" style="width: 60pt;" width="80">
<p style="text-align: right;"><strong> Ruby1.8</strong></p>
</td>
<td class="xl25" style="width: 60pt;" width="80">
<p style="text-align: right;"><strong> Ruby1.9<br />
</strong></td>
<td class="xl25" style="width: 60pt;" width="80">
<p style="text-align: right;"><strong> JRuby1.3.0<br />
</strong></td>
<td class="xl25" style="width: 80pt;" width="100">
<p style="text-align: right;"><strong> Ruby1.8 /</strong></p>
<p style="text-align: right;"><strong> Ruby1.9</strong></p>
</td>
<td class="xl25" style="width: 80pt;" width="100">
<p style="text-align: right;"><strong> Ruby1.8 / </strong></p>
<p style="text-align: right;"><strong> JRuby1.3.0</strong></p>
</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="height: 12.75pt;" height="17">bm_app_fib.rb</td>
<td class="xl27" style="border-left: medium none;" align="right">9.02</td>
<td class="xl27" style="border-left: medium none;" align="right">4.00</td>
<td class="xl27" style="border-left: medium none;" align="right">3.83</td>
<td class="xl27" style="border-left: medium none;" align="right">2.25</td>
<td class="xl27" style="border-left: medium none;" align="right">2.36</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_mandelbrot.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.36</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.49</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.14</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.26</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_pentomino.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">144.24</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">91.97</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">105.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.57</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.37</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_raise.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.94</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.98</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.63</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.01</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.27</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_strconcat.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.94</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.63</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.30</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.27</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_tak.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">12.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.66</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.06</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.17</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.02</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_tarai.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.83</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.03</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.00</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_app_uri.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.59</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.77</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.69</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.75</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.79</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_io_file_create.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.17</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.12</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.70</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.30</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.07</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_io_file_read.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.61</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.71</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.54</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_io_file_write.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.77</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.98</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.31</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-6.22</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.64</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_loop_for.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.97</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.50</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.63</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.53</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_loop_generator.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">149.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.00</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.95</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">49.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">13.66</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_loop_times.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.95</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.41</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.63</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_loop_whileloop.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">11.23</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.67</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.42</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.06</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.19</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_loop_whileloop2.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.33</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.72</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.89</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.24</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.23</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_array.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">8.41</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.33</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">16.17</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.15</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.92</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_binary_trees.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.50</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.14</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.84</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.10</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.58</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_concatenate.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.49</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.95</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.03</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.27</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.22</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_exception.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.62</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.42</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.63</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.37</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.90</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_fasta.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">13.59</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">11.77</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">16.03</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.16</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.18</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_lists.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.38</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.48</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.65</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.53</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_mandelbrot.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">44.55</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">32.49</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">49.28</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.37</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.11</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_matrix.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.69</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.13</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.84</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.26</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.46</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_meteor_contest.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">52.55</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">25.17</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">22.02</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.09</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.39</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_nbody.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">35.80</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">26.61</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">16.78</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.35</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.13</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_nested_loop.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.09</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">8.64</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.13</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.42</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_nsieve.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">26.89</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">13.11</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">24.69</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.05</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.09</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_nsieve_bits.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">62.50</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">46.05</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">42.55</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.36</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.47</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_object.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">11.56</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">11.52</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.11</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.00</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.72</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_partial_sums.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">80.13</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">228.91</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">31.22</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.86</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.57</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_pidigits.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.33</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.44</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.03</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.01</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.47</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_random.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.59</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">12.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.86</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.80</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.47</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_sieve.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.84</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.34</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">0.63</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.45</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.35</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_so_spectralnorm.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">41.86</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">92.88</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">20.03</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.22</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.09</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_block.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">26.22</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">13.44</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">27.44</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.95</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.05</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_const.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">19.02</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">17.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.03</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.08</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_ensure.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">20.06</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.11</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">16.19</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.93</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.24</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_ivar.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">17.95</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.50</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">18.78</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.89</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.05</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_ivar_set.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">19.22</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.83</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">21.67</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.96</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.13</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_length.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">22.95</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.44</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">18.16</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.09</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.26</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_neq.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">20.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.58</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">14.98</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.16</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.39</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_not.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">14.91</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.58</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">12.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.67</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.18</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_rescue.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">15.72</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.64</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">21.38</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.39</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.36</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_simplereturn.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">23.84</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.66</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">16.05</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.47</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.49</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm1_swap.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">50.25</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.73</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">24.38</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">8.76</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.06</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_array.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">10.72</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">19.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.42</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.80</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.98</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_case.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.06</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.66</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.00</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.06</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.27</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_eval.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">32.20</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">200.98</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">69.41</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-6.24</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-2.16</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_method.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">15.45</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">9.45</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">11.36</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.63</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.36</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_mutex.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.47</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.34</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.30</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.16</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.33</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_poly_method.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">20.61</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">12.16</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">21.05</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.70</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-1.02</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_poly_method_ov.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.00</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.66</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.53</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.02</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.10</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_proc.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">12.00</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.86</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.75</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.11</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.78</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_regexp.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.89</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">19.25</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.63</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-3.27</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.05</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_send.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.05</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.11</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.38</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.39</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.15</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_super.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.75</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.17</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">4.44</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.81</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.30</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_unif1.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.20</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.99</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.61</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">2.62</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.44</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm2_zsuper.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">6.87</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">3.48</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">5.49</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.97</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.25</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td class="xl26" style="border-top: medium none; height: 12.75pt;" height="17">bm_vm3_thread_create_join.rb</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">1.95</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">7.70</td>
<td class="xl27" style="border-top: medium none; border-left: medium none;" align="right">19.13</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-3.94</td>
<td class="xl27" style="color: maroon; font-weight: 700;" align="right">-9.79</td>
</tr>
<tr style="height: 12.75pt;" height="17">
<td style="height: 12.75pt;" height="17">bm_vm3_gc.rb</td>
<td class="xl24" align="right">292.30</td>
<td class="xl24" align="right">266.14</td>
<td class="xl24" align="right">0.36</td>
<td class="xl24" align="right">1.10</td>
<td class="xl24" align="right">814.20</td>
</tr>
</tbody>
</table>
<p>.</p>
<p>A looser conclusion may be that <span style="color: #333399;"><strong>Ruby 1.9</strong></span> is <span style="color: #333399;"><strong>95%</strong></span> faster than Ruby1.8, and <span style="color: #333399;"><strong>JRuby 1.3.0</strong></span> is <strong><span style="color: #333399;">10% </span></strong>faster than 1.8, in general the new implementations are faster than Ruby1.8,  especially 1.9 (twice as faster).</p>
<p>The benchmarks were under <strong><span style="color: #333399;">WindowsXP  SP3</span></strong>, <span style="color: #333399;"><strong>4GB RAM</strong></span>, and a Intel <span style="color: #333399;"><strong>Core 2 duo 2.0GHz.</strong></span> Happy hacking!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Ruby+Benchmarks+http://i9esa.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.moove-it.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=Ruby+Benchmarks+http://i9esa.th8.us" title="Post to Twitter">Tweet This Post</a>&nbsp; </p>]]></content:encoded>
			<wfw:commentRss>http://blog.moove-it.com/206/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Trick to improve performance in rails, less requests with static resources</title>
		<link>http://blog.moove-it.com/improving-performance-with-a-few-requests-in-rails/</link>
		<comments>http://blog.moove-it.com/improving-performance-with-a-few-requests-in-rails/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:30:38 +0000</pubDate>
		<dc:creator>Pablo Ifran</dc:creator>
				<category><![CDATA[performance]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.moove-it.com/?p=161</guid>
		<description><![CDATA[Reducing the number of request made to the server improves the performance of a web application in about 80%.
There are many techniques that allow us to reduce the amount of requests that are made on a page, among them are: the sprites, put the stylesheets on top of the page, javascripts compress, among others.
But what&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Reducing the number of request made to the server improves the performance of a web application in about <strong>80%</strong>.</p>
<p>There are many techniques that allow us to reduce the amount of requests that are made on a page, among them are: the sprites, put the stylesheets on top of the page, javascripts compress, among others.</p>
<p><em>But what&#8217;s offered by Rails to improve the performance of our web application?</em></p>
<p>It offers a great plugin called bundle_fu (http://code.google.com/p/bundle-fu/)<br />
It allows us with a single request obtain all the javascripts and with another request all the stylesheets  (it also offers the possibility of compress javascripts).<br />
Using this plugin is really easy but it&#8217;s very powerfull</p>
<pre>&lt;% bundle do -%&gt;
  &lt;%= javascript_include_tag :default -%&gt;
  &lt;%= javascript_include_tag "javascript1" -%&gt;
  &lt;%= javascript_include_tag "javascript2" -%&gt;
  &lt;%= javascript_include_tag "javascript3" -%&gt;
  &lt;%= stylesheet_link_tag "style1" -%&gt;
  &lt;%= stylesheet_link_tag "style2" -%&gt;
  &lt;%= stylesheet_link_tag "style3" -%&gt;
  ...
&lt;% end %&gt;</pre>
<p>All these javascripts and stylesheets are converted in only two files when the request is processed.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Trick+to+improve+performance+in+rails%2C+less+requests+with+static+resources+http://knyds.th8.us" title="Post to Twitter"><img class="nothumb" src="http://blog.moove-it.com/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="[Post to Twitter]" border="0" /></a> <a class="tt" href="http://twitter.com/home/?status=Trick+to+improve+performance+in+rails%2C+less+requests+with+static+resources+http://knyds.th8.us" title="Post to Twitter">Tweet This Post</a>&nbsp; </p>]]></content:encoded>
			<wfw:commentRss>http://blog.moove-it.com/improving-performance-with-a-few-requests-in-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
