[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]