ruby-changes:59928
From: Jean <ko1@a...>
Date: Thu, 6 Feb 2020 10:38:40 +0900 (JST)
Subject: [ruby-changes:59928] 26ffd6e409 (master): Increase the frozen_strings table initial size
https://git.ruby-lang.org/ruby.git/commit/?id=26ffd6e409 From 26ffd6e409fad94b3a24420156ab4b2897732cbc Mon Sep 17 00:00:00 2001 From: Jean Boussier <jean.boussier@g...> Date: Wed, 15 Jan 2020 14:40:01 +0100 Subject: Increase the frozen_strings table initial size It was set to 1000 in a4a2b9be7a55bb61d17cf9673ed0d2a93bb52d31. However on ruby-2.7.0p0, there are much more than 1k frozen string right after boot: ``` $ ruby -robjspace -e 'p ObjectSpace.each_object(String).select { |s| s.frozen? && ObjectSpace.dump(s).include?(%{"fstring":true})}.uniq.count' 5948 ``` diff --git a/vm.c b/vm.c index e772d3b..fae2b68 100644 --- a/vm.c +++ b/vm.c @@ -3344,7 +3344,7 @@ Init_vm_objects(void) https://github.com/ruby/ruby/blob/trunk/vm.c#L3344 /* initialize mark object array, hash */ vm->mark_object_ary = rb_ary_tmp_new(128); vm->loading_table = st_init_strtable(); - vm->frozen_strings = st_init_table_with_size(&rb_fstring_hash_type, 1000); + vm->frozen_strings = st_init_table_with_size(&rb_fstring_hash_type, 10000); } /* top self */ -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/