string.c: Improve String#prepend performance if only one argument is given
string.c (rb_str_prepend_multi): Prepend the string without generating
temporary String object if only one argument is given.
This is very similar with https://github.com/ruby/ruby/pull/1634
string.c: Improve String#prepend performance if only one argument is given
string.c (rb_str_prepend_multi): Prepend the string without generating
temporary String object if only one argument is given.
This is very similar with https://github.com/ruby/ruby/pull/1634
[Fix GH-1670] [ruby-core:82195] [Bug #13773]
Before
String#prepend 1.517M (± 1.8%) i/s - 7.614M in 5.019819s
After
String#prepend 2.236M (± 3.4%) i/s - 11.234M in 5.029716s
Test code
require 'benchmark/ips'
Benchmark.ips do |x|
x.report "String#prepend" do |loop|
loop.times { "!".prepend("hello") }
end
end
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e