Project

General

Profile

Actions

Bug #9137

closed

RUBY_FREE_MIN is not enforced correctly

Added by sam.saffron (Sam Saffron) over 10 years ago. Updated over 10 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
2.1.0
[ruby-core:58474]

Description

At the moment setting RUBY_FREE_MIN does not work as expected:

All it does is cause heap_set_increment to be triggered more aggressively. heap_set_increment totally ignores it. The end result is

sam@ubuntu:~/Source/ruby$ RUBY_FREE_MIN=$(( 4081000 )) ruby -e "GC.start; p GC.count; (800408).times{ '' }; p GC.count"
5
12

So the GC ran 7 times even though we should have heap space to fit the free min.

With this patch: https://github.com/SamSaffron/ruby/commit/b84e11c85b9fcde65dfc9347427e720307ef5a62 we can correct the behavior

sam@ubuntu:~/Source/ruby$ RUBY_FREE_MIN=$(( 4081000 )) ruby -e "GC.start; p GC.count; (800408).times{ '' }; p GC.count"
5
5

Actions

Also available in: Atom PDF

Like0
Like0Like0