mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
9f9d9e5000
"lazy_sweep" does not appear to have ever been a valid kwarg for GC.start, however the opposite of "lazy_sweep" appears to be "immediate_sweep". So use immediate_sweep, and flip the boolean value of each arg. I guess this only started failing with r56981 in Dec 2016 ("class.c: missing unknown_keyword_error", commit e3f0cca2f26ba44c810ac980cdff7dda129ae533) * benchmark/bm_vm1_gc_wb_ary.rb: "lazy_sweep: false" => "immediate_sweep: true" * benchmark/bm_vm1_gc_wb_ary_promoted.rb: ditto * benchmark/bm_vm1_gc_wb_obj.rb: ditto * benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
17 lines
302 B
Ruby
17 lines
302 B
Ruby
class C
|
|
attr_accessor :foo
|
|
end
|
|
long_lived = C.new
|
|
|
|
if RUBY_VERSION >= "2.2.0"
|
|
3.times{ GC.start(full_mark: false, immediate_mark: true, immediate_sweep: true) }
|
|
elsif
|
|
GC.start
|
|
end
|
|
|
|
i = 0
|
|
short_lived = ''
|
|
while i<30_000_000 # while loop 1
|
|
long_lived.foo = short_lived # write barrier
|
|
i+=1
|
|
end
|