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/