Slide 30
Slide 30 text
”Project Naraku ֎ — ϨʔϧϩʔυਤͰরΒ͢ Onigumo ͷόά” — shimokawa (@aim2bpg)
রᶅ−7: ύϑΥʔϚϯεվળ݁ՌΛ֬ೝ͢Δ
CRuby Ͱશ10ΧςΰϦ Onigmo ͑
30
ύλʔϯ Onigmo Naraku.rb Nk.rb/Ong Naraku.c Nk.c/Ong
Watson (literal) 3,681 i/s 2,551 i/s 0.69x 6,012 i/s 1.63x
foo|bar|baz (alternation) 3,693 i/s 1,893 i/s 0.51x 5,166 i/s 1.40x
a+b (repetition) 1,683 i/s 2,678 i/s 1.59x 4,871 i/s 2.90x
(a|a)+b (ambiguous) 623 i/s 2,665 i/s 4.28x 4,857 i/s 7.80x
[a-zA-Z0-9]+ (char_class) 3,866 i/s 3,329 i/s 0.86x 8,235 i/s 2.13x
\d{4}-\d{2}-\d{2} (bounded) 3,454 i/s 2,307 i/s 0.67x 3,712 i/s 1.07x
\d{4}-\d{2}-\d{2} (non-match) 4,042 i/s 3,145 i/s 0.78x 6,594 i/s 1.63x
(?:a?){30}a{30} (pathological) 808 i/s 750 i/s 0.93x 846 i/s 1.05x
δϣόϯχ|ΧϜύωϧϥ (unicode) 3,649 i/s 2,715 i/s 0.74x 5,829 i/s 1.60x
[a-zA-Z0-9]+ (6000B long) 605 i/s 3,057 i/s 5.05x 4,209 i/s 6.96x
i/s: iteration-per-second
https://github.com/aim2bpg/naraku/blob/kansai-rubykaigi09/docs/ja/naraku_vm.md#63-%E3%83%99%E3%83%B3%E3%83%81%E3%83%9E%E3%83%BC%E3%82%AF%E7%B5%90%E6%9E%9C