Project

General

Profile

Actions

Bug #13113

closed

Performance issue, const_set Module.new is too slow in Ruby 2.4

Added by pocke (Masataka Kuwabara) over 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
[ruby-core:79007]

Description

In Ruby 2.4, the following code is too slow.

5000000.times { Module.new.const_set(:X, Module.new) }

In Ruby 2.4, it took 115.68 seconds to run this code.
However, in Ruby 2.3.3, it took 7.36 seconds.

And if const_set value is not Module.new, it is not slow. For example

5000000.times { Module.new.const_set(:X, 2) }

Ruby versions

ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

See also. https://github.com/rspec/rspec-core/issues/2365

Actions

Also available in: Atom PDF