Project

General

Profile

Actions

Bug #9203

closed

fstring_table size and performance

Added by ko1 (Koichi Sasada) over 10 years ago. Updated over 10 years ago.

Status:
Closed
Target version:
ruby -v:
2.1
[ruby-core:58819]

Description

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)

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0