[ruby-dev:46103] [ruby-trunk - Feature #6311] memmem()によるrb_memsearch()の高速化

From: "Glass_saga (Masaki Matsushita)" <glass.saga@...>
Date: 2012-09-03 14:28:44 UTC
List: ruby-dev #46103
Issue #6311 has been updated by Glass_saga (Masaki Matsushita).


時間が経ってしまいましたが、いかがでしょうか。
特に反対や議論がないようであれば、取り込んで頂けると幸いです。
----------------------------------------
Feature #6311: memmem()によるrb_memsearch()の高速化
https://bugs.ruby-lang.org/issues/6311#change-29158

Author: Glass_saga (Masaki Matsushita)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: core
Target version: 


[Feature #6129][ruby-dev:45344]と類似していますが、memmem()によるre.cのrb_memsearch()の高速化を試みました。

次のベンチマークを実行したところ以下の結果となり、有意な性能向上がみられました。

require 'benchmark'

str = "hoge" * 10000 + "fugafuga"

Benchmark.bm do |x|
  x.report do
    1000.times { str.index("fugafuga") }
  end
end

trunk(r35363):
       user     system      total        real
   0.070000   0.000000   0.070000 (  0.072126)
       user     system      total        real
   0.070000   0.010000   0.080000 (  0.081420)
       user     system      total        real
   0.080000   0.000000   0.080000 (  0.091658)

proposal:
       user     system      total        real
   0.000000   0.000000   0.000000 (  0.004237)
       user     system      total        real
   0.000000   0.000000   0.000000 (  0.003737)
       user     system      total        real
   0.010000   0.000000   0.010000 (  0.004696)

patchを添付します。


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

In This Thread