From: "ged (Michael Granger)" Date: 2013-03-01T10:05:44+09:00 Subject: [ruby-core:53055] [ruby-trunk - Bug #7984] Severe speed issues in 2.0.0 compiled with Clang Issue #7984 has been updated by ged (Michael Granger). =begin I also see the same thing Eric does, but with 1.9.3p392: $ ruby -rbenchmark -ve 'puts Benchmark.measure { 50000000.times { Object.new } }' ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1] 9.400000 0.100000 9.500000 ( 9.497637) $ ruby -rbenchmark -ve 'puts Benchmark.measure { 50000000.times { Object.new } }' ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1] 10.580000 0.060000 10.640000 ( 10.636003) =end ---------------------------------------- Bug #7984: Severe speed issues in 2.0.0 compiled with Clang https://bugs.ruby-lang.org/issues/7984#change-37209 Author: jcole1989 (James Coleman) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 2.0.0p0 on darwin I've been comparing Ruby 2.0.0 with 1.9.3-head, both compiled with the same basic set of CFLAGs with Clang on Mac OS 10.8 (Mountain Lion). A decent sized rails app was showing performance degradations, so I looked into the most basic of (micro)benchmarks. Running the following: t = Benchmark.measure do 50000000.times { Object.new } end Gives me the following output: 1.9.3-head: 11.240000 0.000000 11.240000 ( 11.247285) 2.0.0p0: 23.610000 0.010000 23.620000 ( 23.629643) Ruby 2.0.0 takes over twice as long as 1.9.3. In contrast, running the same test under rubies compiled with GCC on linux (unfortunately I can't do a direct test on OSX because 2.0.0 currently won't compile under the current apple gcc 4.2) Ruby 2.0.0 shows a 15-20% speed improvement over 1.9.3. So it seems there's a severe speed regression interaction with the ruby 2.0.0 code and Clang. -- http://bugs.ruby-lang.org/