<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for twisti</title>
    <link>http://www.advogato.org/person/twisti/</link>
    <description>Advogato blog for twisti</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 23 May 2013 12:36:01 GMT</pubDate>
    <item>
      <pubDate>Wed, 24 Aug 2011 15:04:42 GMT</pubDate>
      <title>Latest JSR 292 performance work</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=37</link>
      <guid>http://blogs.oracle.com/twisti/entry/latest_jsr_292_performance_work</guid>
      <description>&lt;p&gt;It's been a long time since my last post (over a year) and in the meantime we have released JDK 7 with JSR 292 support. &#xA0;Right now I'm working on JSR 292 performance and which should be included in the next JDK 7 update (7u) release.&lt;/p&gt; 
  &lt;p&gt;I just sent out an &lt;a href="http://mail.openjdk.java.net/pipermail/mlvm-dev/2011-August/003786.html" &gt;email&lt;/a&gt; to the &lt;a href="http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev" &gt;mlvm-dev mailing list&lt;/a&gt; with some JRuby performance numbers for:&lt;/p&gt; 
  &lt;p&gt;
  &lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7079673" &gt;7079673: JSR 292: C1 should inline bytecoded method handle adapters&lt;/a&gt;
&lt;/p&gt; 
  &lt;p&gt;I paste them here again for convenience.&lt;/p&gt; 
  &lt;p&gt;
  &lt;font size="1"&gt;
    &lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/jruby$ jruby -J-showversion --client bench/bench_fib_complex.rb 5 35&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;java version "1.7.0"&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.7.0-b147)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;normal fib&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;11.765000 &#xA0;&#xA0;0.000000 &#xA0;11.765000 ( 11.748000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;11.765000 &#xA0;&#xA0;0.000000 &#xA0;11.765000 ( 11.765000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;11.746000 &#xA0;&#xA0;0.000000 &#xA0;11.746000 ( 11.746000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;11.745000 &#xA0;&#xA0;0.000000 &#xA0;11.745000 ( 11.745000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;11.702000 &#xA0;&#xA0;0.000000 &#xA0;11.702000 ( 11.702000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;14.879000 &#xA0;&#xA0;0.000000 &#xA0;14.879000 ( 14.879000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;14.912000 &#xA0;&#xA0;0.000000 &#xA0;14.912000 ( 14.912000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;15.255000 &#xA0;&#xA0;0.000000 &#xA0;15.255000 ( 15.255000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;15.168000 &#xA0;&#xA0;0.000000 &#xA0;15.168000 ( 15.169000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;15.320000 &#xA0;&#xA0;0.000000 &#xA0;15.320000 ( 15.320000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;25.799000 &#xA0;&#xA0;0.000000 &#xA0;25.799000 ( 25.798000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;25.705000 &#xA0;&#xA0;0.000000 &#xA0;25.705000 ( 25.705000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;26.044000 &#xA0;&#xA0;0.000000 &#xA0;26.044000 ( 26.044000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;26.028000 &#xA0;&#xA0;0.000000 &#xA0;26.028000 ( 26.028000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;26.351000 &#xA0;&#xA0;0.000000 &#xA0;26.351000 ( 26.351000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants and additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;25.053000 &#xA0;&#xA0;0.000000 &#xA0;25.053000 ( 25.053000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;24.406000 &#xA0;&#xA0;0.000000 &#xA0;24.406000 ( 24.406000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;24.550000 &#xA0;&#xA0;0.000000 &#xA0;24.550000 ( 24.550000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;24.478000 &#xA0;&#xA0;0.000000 &#xA0;24.478000 ( 24.478000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;24.381000 &#xA0;&#xA0;0.000000 &#xA0;24.381000 ( 24.381000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/jruby$ jruby -J-showversion --client -Xcompile.invokedynamic=false bench/bench_fib_complex.rb 5 35&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;java version "1.7.0"&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.7.0-b147)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;normal fib&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.778000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.778000 ( &#xA0;1.724000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.740000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.740000 ( &#xA0;1.740000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.734000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.734000 ( &#xA0;1.734000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.735000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.735000 ( &#xA0;1.736000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.745000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.745000 ( &#xA0;1.745000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.420000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.420000 ( &#xA0;3.420000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.379000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.379000 ( &#xA0;3.379000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.387000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.387000 ( &#xA0;3.387000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.398000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.398000 ( &#xA0;3.398000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.389000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.389000 ( &#xA0;3.389000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;2.953000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;2.953000 ( &#xA0;2.953000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;2.973000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;2.973000 ( &#xA0;2.973000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;2.974000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;2.974000 ( &#xA0;2.974000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;2.977000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;2.977000 ( &#xA0;2.977000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;2.979000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;2.979000 ( &#xA0;2.979000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants and additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;4.290000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;4.290000 ( &#xA0;4.290000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;4.222000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;4.222000 ( &#xA0;4.222000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;4.221000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;4.221000 ( &#xA0;4.222000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;4.223000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;4.223000 ( &#xA0;4.223000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;4.222000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;4.222000 ( &#xA0;4.221000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/jruby$ jruby -J-showversion --client bench/bench_fib_complex.rb 5 35&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;java version "1.8.0-ea"&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.8.0-ea-b01)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 22.0-b01-internal, mixed mode)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;normal fib&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.072000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.072000 ( &#xA0;1.056000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.059000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.059000 ( &#xA0;1.059000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.042000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.042000 ( &#xA0;1.042000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.043000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.043000 ( &#xA0;1.044000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.048000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.048000 ( &#xA0;1.049000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.178000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.178000 ( &#xA0;3.179000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.036000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.036000 ( &#xA0;3.036000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.056000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.056000 ( &#xA0;3.056000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.052000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.052000 ( &#xA0;3.052000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.052000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.052000 ( &#xA0;3.052000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.698000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.698000 ( &#xA0;1.698000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.677000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.677000 ( &#xA0;1.677000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.677000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.677000 ( &#xA0;1.677000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.678000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.678000 ( &#xA0;1.678000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;1.680000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;1.680000 ( &#xA0;1.680000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;fib with constants and additional calls&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.483000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.483000 ( &#xA0;3.483000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.501000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.501000 ( &#xA0;3.501000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.496000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.496000 ( &#xA0;3.496000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.498000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.498000 ( &#xA0;3.498000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;&#xA0;3.530000 &#xA0;&#xA0;0.000000 &#xA0;&#xA0;3.530000 ( &#xA0;3.530000)&lt;/span&gt;
    &lt;span style="font-family: Courier; "&gt;
      &lt;br/&gt;&lt;/span&gt;
  &lt;/font&gt;
&lt;/p&gt; 
  &lt;p&gt;And here are some numbers for the &lt;a href="https://github.com/headius/redblack" &gt;Red Black Tree benchmark&lt;/a&gt;:&lt;br/&gt;&lt;font face="Courier" size="2"/&gt;&lt;span style="font-size: small; font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;font size="1"&gt;&lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/redblack$ jruby -J-showversion --client bm1.rb&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;java version "1.7.0"&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.7.0-b147)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;18.136&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;17.942&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;17.969&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;17.783&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;17.916&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/redblack$ jruby -J-showversion --client -Xcompile.invokedynamic=false bm1.rb&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;java version "1.7.0"&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.7.0-b147)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.791&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.563&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.587&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.568&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.628&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;intelsdv07:~/mlvm/redblack$ jruby -J-showversion --client bm1.rb&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;java version "1.8.0-ea"&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java(TM) SE Runtime Environment (build 1.8.0-ea-b01)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;Java HotSpot(TM) Client VM (build 22.0-b01-internal, mixed mode)&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;3.998&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.278&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.25&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.204&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="font-family: Courier; "&gt;2.193&lt;/span&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 7 Apr 2010 13:09:44 GMT</pubDate>
      <title>JSR 292 SPARC C1 and C2 support</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=36</link>
      <guid>http://blogs.sun.com/twisti/entry/jsr_292_sparc_c1_and</guid>
      <description>&lt;p&gt;I just &lt;a href="http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/31c0137dc777" &gt;pushed&lt;/a&gt; the SPARC C1 and C2 patches to support JSR 292 to the &lt;a href="http://hg.openjdk.java.net/mlvm/mlvm/" &gt;MLVM repository&lt;/a&gt;.&amp;nbsp; I've tested both thoroughly with JRuby's tests and benchmarks and both work pretty good.&amp;nbsp; Although I know of one bug in C1 this can be treated as the final versions and I'll start the first review round soon to get them into JDK 7 builds.&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 25 Feb 2010 13:12:45 GMT</pubDate>
      <title>First invokedynamic call on SPARC</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=35</link>
      <guid>http://blogs.sun.com/twisti/entry/first_invokedynamic_call_on_sparc</guid>
      <description>&lt;p&gt;Today I successfully executed an invokedynamic call on SPARC for the first time.&amp;nbsp; Excellent!&lt;/p&gt; 
  &lt;pre&gt;$ bin/jruby.gamma -J-XX:+UseSerialGC -J-Djruby.compile.invokedynamic=true -J-Xint -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic bench/bench_fib_recursive.rb 
OpenJDK Server VM (17.0-b08-internal-jvmg) for solaris-sparc JRE (1.7.0), built on Feb 25 2010 04:35:47 by "ct232829" with Workshop 5.9
VM option '+UseSerialGC'
VM option '+UnlockExperimentalVMOptions'
VM option '+EnableMethodHandles'
VM option '+EnableInvokeDynamic'
 52.813000   0.000000  52.813000 ( 52.296000)
 52.824000   0.000000  52.824000 ( 52.823000)
 51.808000   0.000000  51.808000 ( 51.808000)
 49.740000   0.000000  49.740000 ( 49.740000)
 49.450000   0.000000  49.450000 ( 49.450000)
&lt;/pre&gt; 
  &lt;p&gt;MethodHandle calls already work since a couple of days and I can run the JDK &lt;a href="http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/a9b4fde406d4/test/java/dyn/MethodHandlesTest.java" &gt;MethodHandlesTest&lt;/a&gt; without any errors:&lt;/p&gt; 
  &lt;pre&gt;$ gamma -Xinternalversion
OpenJDK Server VM (17.0-b08-internal-jvmg) for solaris-sparc JRE (1.7.0), built on Feb 25 2010 04:35:47 by "ct232829" with Workshop 5.9
$ gamma -Xint -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -classpath /java/devtools/share/junit/latest/junit.jar:. org.junit.runner.JUnitCore MethodHandlesTestVM option '+UnlockExperimentalVMOptions'
VM option '+EnableMethodHandles'
JUnit version 4.4
OpenJDK Server VM warning: JSR 292 invokedynamic is disabled in this JVM.  Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable.
.IIIIII.findStatic
:::::::::::.findVirtual
:::::::::::::::.findSpecial
::.bind
::::::::::::::::::::::.unreflect
::::::::::::::::::::::::I.unreflectGetter
.unreflectSetter
.arrayElementGetter
.arrayElementSetter
.convertArguments
::::::.permuteArguments
.spreadArguments
.collectArguments
.insertArguments
.filterArguments
.foldArguments
.dropArguments
.exactInvoker, genericInvoker, varargsInvoker, dynamicInvoker
.guardWithTest
.catchException
.throwException
.testCastFailure

Time: 7.984

OK (23 tests)
&lt;/pre&gt; 
  &lt;p&gt;JSR 292 SPARC support is on its way...&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 22 Jan 2010 14:13:19 GMT</pubDate>
      <title>JSR 292 server compiler support in JDK 7 b80</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=34</link>
      <guid>http://blogs.sun.com/twisti/entry/jsr_292_server_compiler_support</guid>
      <description>&lt;p&gt;About two weeks ago I pushed the remaining changes (&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6894206" &gt;6894206&lt;/a&gt;, &lt;/font&gt;&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893081" &gt;6893081&lt;/a&gt;, &lt;/font&gt;&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829187" &gt;6829187&lt;/a&gt;, &lt;/font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6893268" &gt;&lt;font&gt;6893268&lt;/font&gt;&lt;/a&gt;) for C2 invokedynamic support on x86 which were integrated into HotSpot 17 b07.&amp;nbsp; Meanwhile HS17b07 has been integrated into JDK 7 b80 and the latter has been &lt;a href="http://download.java.net/openjdk/jdk7/promoted/b80/" &gt;released&lt;/a&gt;.&lt;/p&gt; 
  &lt;p&gt;With two changesets&amp;nbsp;&lt;font&gt;&lt;/font&gt;John Rose pushed lately (&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6891770" &gt;6891770&lt;/a&gt;, &lt;/font&gt;&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6914665" &gt;6914665&lt;/a&gt;)&lt;/font&gt;, which have been integrated into JDK 7 b79, you can run now invokedynamic enabled programs with decent performance.&amp;nbsp; Additionally we tuned inlining heuristics a little (&lt;font&gt;&lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6912063" &gt;6912063&lt;/a&gt;) to be able to use inline-related&lt;/font&gt; switches in a product VM and to not count generated MethodHandle adapters.&lt;/p&gt; 
  &lt;p&gt;And here is how it works (gwt is a simple testcase for guardWithTest):&lt;/p&gt; 
  &lt;pre&gt;$ java -server -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic gwt
370655678&lt;/pre&gt; 
  &lt;p&gt;You can also run JRuby benchmarks, like &lt;font face="courier new,courier,monospace"&gt;bench_fractal.rb&lt;/font&gt; which prints a nice fractal (we need to tune inlining heuristics a little to get good performance):&lt;/p&gt; 
  &lt;pre&gt;$ bin/jruby --server -J-Djruby.compile.invokedynamic=true -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableMethodHandles -J-XX:+EnableInvokeDynamic -J-XX:InlineSmallCode=2500 -J-XX:MaxInlineSize=50 bench/bench_fractal.rb
Rendering
&amp;lt;snip&amp;gt;
&lt;/pre&gt; 
  &lt;p&gt;(To see the fractal you have to try it yourself :-)&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;The next thing will be C1 support.&amp;nbsp; I'm currently working on it and it's almost finished.&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 12 Jan 2010 10:09:30 GMT</pubDate>
      <title>One</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=33</link>
      <guid>http://blogs.sun.com/twisti/entry/one</guid>
      <description>&lt;p&gt;It's exactly &lt;a href="http://www.advogato.org/twisti/entry/into_the_sun" &gt;one year ago&lt;/a&gt; that I started to work for Sun.&amp;nbsp; Nice!&amp;nbsp; I wasn't sure that I will make the anniversary facing the merger with Oracle.&amp;nbsp; Anyway, I learned a lot in this first year and I'm really looking forward to the next years at Sun (or whatever the company will be called then).&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 2 Oct 2009 16:12:48 GMT</pubDate>
      <title>Compiz and the Meta key in Emacs</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=32</link>
      <guid>http://blogs.sun.com/twisti/entry/compiz_and_the_meta_key</guid>
      <description>&lt;p&gt;When I &lt;a href="http://www.advogato.org/twisti/entry/back_to_opensolaris_and_dbx" &gt;switched back to OpenSolaris&lt;/a&gt; I wanted to use Compiz instead of Metacity to have at least some eye candy.&amp;nbsp; After switching to Compiz I noticed that the Meta key is not working in Emacs.&amp;nbsp; Since it worked in the &amp;quot;Normal Visual Effects&amp;quot; mode I was sure it's related to one of the Compiz plugins that was turned on by default in the &amp;quot;Custom&amp;quot; mode.&lt;/p&gt; 
  &lt;p&gt;After some trial and error I found out that the &amp;quot;Group and Tab Windows&amp;quot; in the &amp;quot;Window Management&amp;quot; section is the bugger.&amp;nbsp; It uses a couple of &lt;tt&gt;&amp;lt;Mod4&amp;gt;&lt;/tt&gt; key bindings and one of them is &lt;tt&gt;&amp;lt;Mod4&amp;gt;x.&lt;/tt&gt;&lt;/p&gt; 
  &lt;p&gt;Disabling that plugin makes &lt;tt&gt;M-x&lt;/tt&gt; work again in Emacs.&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 2 Oct 2009 16:12:48 GMT</pubDate>
      <title>Back to OpenSolaris (and DBX)</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=31</link>
      <guid>http://blogs.sun.com/twisti/entry/back_to_opensolaris_and_dbx</guid>
      <description>&lt;p&gt;A few months ago I got a new laptop (unibody MacBook Pro) and I decided to stay with Mac OS X because of two main reasons: Broadcom WiFi and the touchpad.&amp;nbsp; Everything looked very slick and worked, obviously, out-of-the-box.&amp;nbsp; A perfect OS for private use.&lt;/p&gt; 
  &lt;p&gt;But developing on that OS is a pain in the...&amp;nbsp; Apple's GDB drives me nuts!&amp;nbsp; It was crashing every now and then and was 95% of the time not able to call simple C++ instance methods.&amp;nbsp; Completely useless!!!&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;I filed a few bugs in Apple's Radar and &lt;a href="http://sourceware.org/ml/gdb/2009-08/msg00017.html" &gt;tried&lt;/a&gt; to get the FSF guys to support Darwin in their GDB.&amp;nbsp; Some help in both cases, but nothing I could really use.&lt;/p&gt; 
  &lt;p&gt;So, yesterday I decided to bite the bullet, install OpenSolaris again, use &lt;a href="http://www.opensolaris.org//os/community/laptop/wireless/ndis/" &gt;NDIS Wrapper&lt;/a&gt; for the Broadcom WiFi and to give the &lt;a href="http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/SFExorg-input-synaptics.spec?view=log" &gt;xorg-input-synaptics&lt;/a&gt; package of &lt;a href="http://pkgbuild.sourceforge.net/spec-files-extra/" &gt;SFE&lt;/a&gt; a try for the touchpad.&amp;nbsp; The first one is working flawlessly, but only in 32-bit mode.&amp;nbsp; That means I can't test 64-bit HotSpot locally.&amp;nbsp; Well, I can live with that for some time.&amp;nbsp; I didn't have time to try the second one yet but I hope it works.&lt;/p&gt; 
  &lt;p&gt;Glad to be back.&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 9 Sep 2009 13:11:33 GMT</pubDate>
      <title>JSR 292 work update</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=30</link>
      <guid>http://blogs.sun.com/twisti/entry/jsr_292_work_update</guid>
      <description>&lt;p&gt;I'm still working on HotSpot compiler support for JSR 292. &amp;nbsp;The progress is actually very good and inlining is already working in C2. &amp;nbsp;Although there are still some problems with scavenging oops in nmethods and you have to stick to &lt;font face="'courier new', courier, monospace"&gt;UseSerialGC&lt;/font&gt; if you want to give it a try. &amp;nbsp;But &lt;a href="http://www.advogato.org/jrose/" &gt;John Rose&lt;/a&gt; is working on a fix for that.&lt;/p&gt; 
  &lt;p&gt;While not working on inlining I started porting JSR 292 support to x86_64. &amp;nbsp;I've already commited the &lt;a href="http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/60c425aa6014" &gt;interpreter support&lt;/a&gt; and compiler support is in the works and almost finished.&lt;/p&gt; 
  &lt;p&gt;In the meantime &lt;a href="http://blog.headius.com/" &gt;Charles Nutter&lt;/a&gt; introduced another dynamic language, called &lt;a href="http://blog.headius.com/2009/08/introducing-surinx.html" &gt;Surinx&lt;/a&gt;, which uses invokedynamic and &amp;quot;&lt;i&gt;the solid performance of Surinx bodes very well for JRuby's future.&lt;/i&gt;&amp;quot;&amp;nbsp; That sounds good.&lt;br /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 3 Jul 2009 10:15:48 GMT</pubDate>
      <title>Turning off format=flowed in Thunderbird</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=29</link>
      <guid>http://blogs.sun.com/twisti/entry/turn_off_format_flowed_in</guid>
      <description>&lt;p&gt;I just noticed that I'm sending emails with format=flowed in Thunderbird, which is not intentional. &amp;nbsp;A quick search revealed that both sending and displaying emails in flowed format can be turned off.  Just change the following preferences to:&lt;/p&gt; 
  &lt;pre&gt;mailnews.display.disable_format_flowed_support&amp;nbsp;= true
mailnews.send_plaintext_flowed&amp;nbsp;= false&lt;/pre&gt; 
  &lt;p&gt;Better. &lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 7 May 2009 11:11:43 GMT</pubDate>
      <title>More bit-twiddling intrinsics</title>
      <link>http://www.advogato.org/person/twisti/diary.html?start=28</link>
      <guid>http://blogs.sun.com/twisti/entry/more_bit_twiddling_intrinsics</guid>
      <description>&lt;p&gt;Today I &lt;a href="http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/93c14e5562c4" &gt;pushed&lt;/a&gt; the changes for &lt;a href="http://bugs.sun.com/view_bug.do?bug_id=6823354" &gt;6823354&lt;/a&gt; which adds intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}() methods.&amp;nbsp; The speedups are quite good: &lt;br /&gt;&lt;/p&gt; 
  &lt;table cellspacing="1" cellpadding="1" border="1" align="left" style="display: table; width: 795px; height: 213px;"&gt; 
    &lt;tbody&gt; 
      &lt;tr&gt; 
        &lt;td rowspan="2" colspan="2"&gt; &lt;br /&gt;&lt;/td&gt; 
        &lt;td align="center" colspan="2"&gt;
           Integer
        &lt;/td&gt; 
        &lt;td align="center" colspan="2"&gt;
          Long
        &lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td align="center"&gt;
          numberOfLeadingZeros
        &lt;/td&gt; 
        &lt;td align="center"&gt;
          numberOfTrailingZeros
        &lt;/td&gt; 
        &lt;td align="center"&gt;
          numberOfLeadingZeros
        &lt;/td&gt; 
        &lt;td align="center"&gt;
          numberOfTrailingZeros
        &lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td rowspan="2"&gt;Intel Nehalem
&lt;/td&gt; 
        &lt;td&gt;32-bit
&lt;/td&gt; 
        &lt;td valign="top"&gt;3.18
&lt;/td&gt; 
        &lt;td align="left" valign="top"&gt;3.96
&lt;/td&gt; 
        &lt;td valign="top"&gt;1.36
&lt;/td&gt; 
        &lt;td valign="top"&gt;1.90
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td&gt;64-bit
&lt;/td&gt; 
        &lt;td&gt;3.83
&lt;/td&gt; 
        &lt;td&gt;3.74
&lt;/td&gt; 
        &lt;td&gt;2.02&lt;/td&gt; 
        &lt;td&gt;2.17
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td rowspan="4"&gt;AMD Shanghai
&lt;/td&gt; 
        &lt;td&gt;32-bit
&lt;/td&gt; 
        &lt;td&gt;1.94
&lt;/td&gt; 
        &lt;td&gt;3.55
&lt;/td&gt; 
        &lt;td&gt;0.98
&lt;/td&gt; 
        &lt;td&gt;2.44
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td&gt;32-bit w/ lzcnt
&lt;/td&gt; 
        &lt;td&gt;4.90
&lt;/td&gt; 
        &lt;td&gt;-
&lt;/td&gt; 
        &lt;td&gt;1.46
&lt;/td&gt; 
        &lt;td&gt;-
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td&gt;64-bit
&lt;/td&gt; 
        &lt;td&gt;2.52
&lt;/td&gt; 
        &lt;td&gt;3.09
&lt;/td&gt; 
        &lt;td&gt;1.86
&lt;/td&gt; 
        &lt;td&gt;3.26
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td&gt;64-bit w/ lzcnt
&lt;/td&gt; 
        &lt;td&gt;6.77
&lt;/td&gt; 
        &lt;td&gt;-
&lt;/td&gt; 
        &lt;td&gt;3.71
&lt;/td&gt; 
        &lt;td&gt;-
&lt;/td&gt; 
      &lt;/tr&gt; 
      &lt;tr&gt; 
        &lt;td&gt;UltraSparc T2
&lt;/td&gt; 
        &lt;td&gt;32/64-bit
&lt;/td&gt; 
        &lt;td valign="top"&gt;2.01
&lt;/td&gt; 
        &lt;td valign="top"&gt;2.22
&lt;/td&gt; 
        &lt;td valign="top"&gt;1.55
&lt;/td&gt; 
        &lt;td valign="top"&gt;1.91
&lt;/td&gt; 
      &lt;/tr&gt; 
    &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt; 
  &lt;p align="left"&gt;&amp;quot;w/ lzcnt&amp;quot; in the table means the numbers are using AMD's LZCNT (count leading zeros) instruction which is part of &lt;a href="http://en.wikipedia.org/wiki/SSE4#SSE4a" &gt;SSE4a&lt;/a&gt;.&lt;/p&gt; 
  &lt;p&gt;The SPARC intrinsics need a hardware implementation of the POPC instruction.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Yet I haven't found a real-world application that uses these methods extensively (including bitCount), but if anyone knows one, please let me know.
&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
