[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:28547] [Feature #905] Add String.new(fixnum) to preallocate large buffer

From: Motohiro KOSAKI <redmine@...>
Date: 2010-03-07 11:46:18 UTC
List: ruby-core #28547
Issue #905 has been updated by Motohiro KOSAKI.


>$ cat test.rb
>require 'benchmark'
>opt = ARGV[0]
>list = Array.new(10) do
>  Benchmark.realtime do
>    1000.times do
>      s = ""
>      s.buffer(opt ? 100_001 : 100)
>      x = "x" * 1000
>      100.times { s << x }
>    end
>  end
>end
>list.sort!
>p list.first, list.last
>
>$ ./ruby -v -Ilib test.rb opt
>ruby 1.9.2dev (2010-03-07 trunk 26843) [i386-mingw32]
>0.1780099868774414
>0.18601107597351074
>
>$ ./ruby -v -Ilib test.rb
>ruby 1.9.2dev (2010-03-07 trunk 26843) [i386-mingw32]
>0.21401190757751465
>0.22301316261291504

Ah, yes. "x" * 1000 is not so big string. then, its realloc() doesn't use mremap.
It mean string concat(i.e. "<<" operator) cause string copy on each time. but is
this real issue? Does small string copy makes big peformance issue? when? So, I
think we need good realistic benchmark.

Thanks.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/905

----------------------------------------
http://redmine.ruby-lang.org

In This Thread