Project

General

Profile

Feature #6173

re.cのrb_memsearch()におけるmemchr()の利用

Added by Glass_saga (Masaki Matsushita) over 8 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Target version:
[ruby-dev:45397]

Description

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を添付します。


Files

patch.diff (532 Bytes) patch.diff Glass_saga (Masaki Matsushita), 03/18/2012 11:14 PM
patch2.diff (530 Bytes) patch2.diff Glass_saga (Masaki Matsushita), 03/19/2012 12:10 AM

Also available in: Atom PDF