Project

General

Profile

Actions

Bug #19334

closed

Defining many instance variables and accessing them is slow in Ruby 3.2.0

Added by mame (Yusuke Endoh) over 1 year ago. Updated about 1 year ago.


Description

class C
  eval("def initialize; #{ (0..100000).map { "@x#{ _1 } = 0; " }.join } end")
  attr_reader :x50000
end
p :start
C.new.x50000

This script takes less than one second in Ruby 3.1.3, and does more than ten second in Ruby 3.2.0.

$ time ruby -v test.rb
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]
:start

real    0m0.210s
user    0m0.167s
sys     0m0.044s
$ time ruby -v test.rb
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
:start

real    0m11.026s
user    0m10.950s
sys     0m0.040s

This problem is not critical, but is there any room for improvement?


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #19381: SEGV - ivars, both Ubuntu & WindowsClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0