From: "ko1 (Koichi Sasada)" Date: 2013-12-03T12:20:22+09:00 Subject: [ruby-core:58819] [ruby-trunk - Bug #9203][Open] fstring_table size and performance Issue #9203 has been reported by ko1 (Koichi Sasada). ---------------------------------------- Bug #9203: fstring_table size and performance https://bugs.ruby-lang.org/issues/9203 Author: ko1 (Koichi Sasada) Status: Open Priority: Normal Assignee: charliesome (Charlie Somerville) Category: core Target version: current: 2.1.0 ruby -v: 2.1 Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN Clip question discussed on skype. I have two questions about the following benchmark and result. (1) why slowdown if seq == true ? (2) why not GC'ed? (fatal error) ### require 'benchmark' a = 0 b = n = 10_000_000 seq = true Benchmark.bm{|x| x.report{ h = {} (a..b).each{|i| h[i.to_s] = nil } } a, b = b, b+n if seq x.report{ h = {} (a..b).each{|i| h[i.to_s] = nil } } a, b = b, b+n if seq x.report{ h = {} (a..b).each{|i| h[i.to_s] = nil } } } __END__ seq == false ruby 2.1.0dev (2013-12-02 trunk 43956) [i386-mswin32_110] user system total real 18.720000 0.062000 18.782000 ( 18.854394) 15.460000 0.110000 15.570000 ( 15.569977) 15.366000 0.093000 15.459000 ( 15.481966) ruby 2.0.0p317 (2013-09-15 revision 42947) [i386-mswin32_110] user system total real 14.789000 0.094000 14.883000 ( 14.890891) 15.319000 0.078000 15.397000 ( 15.421958) 15.272000 0.078000 15.350000 ( 15.351450) seq == true ruby 2.1.0dev (2013-12-02 trunk 43956) [i386-mswin32_110] user system total real 18.689000 0.187000 18.876000 ( 18.934904) 27.612000 0.250000 27.862000 ( 27.940048) [FATAL] failed to allocate memory ruby 2.1.0dev (2013-12-02 trunk 43956) [i686-linux] user system total real 22.220000 0.400000 22.620000 ( 22.617157) 34.170000 0.130000 34.300000 ( 34.298706) 43.170000 0.110000 43.280000 ( 43.277328) ruby 2.0.0p317 (2013-09-15 revision 42947) [i386-mswin32_110] user system total real 14.758000 0.094000 14.852000 ( 14.892891) 15.506000 0.047000 15.553000 ( 15.566477) 15.523000 0.015000 15.538000 ( 15.560976) -- http://bugs.ruby-lang.org/