Issue #6173 has been reported by Glass_saga (Masaki Matsushita).

----------------------------------------
Feature #6173: re.cのrb_memsearch()におけるmemchr()の利用
https://bugs.ruby-lang.org/issues/6173

Author: Glass_saga (Masaki Matsushita)
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 2.0.0


re.cのrb_memsearch()では、m == 1な場合にはfor文で各バイトと比較していますが、memchr()を用いると性能の改善がみられます。
次のようなベンチマークを実行したところ、以下のような結果となりました。

require 'benchmark'

str = "hoge" * 10000 + "\n"

Benchmark.bm do |x|
  x.report do
    str.index("\n")
  end
end

trunk(r35083):
       user     system      total        real 
   0.000000   0.000000   0.000000 (  0.000185)

proposal:
       user     system      total        real 
   0.000000   0.000000   0.000000 (  0.000018)

patchを添付します。


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