Slide 1

Slide 1 text

5PNPIJTB0EB(.01FQBCP *OD .BSDI ϫϯόΠφϦͷ σϓϩΠ໰୊Λղܾ͢Δ 'VLVPLBHP

Slide 2

Slide 2 text

'VLVPLBHP (.0ϖύϘϓϦϯγύϧΤϯδχΞ খా஌ԝ!MJOZPXT ٕज़෦ٕज़ج൫νʔϜ IUUQUPNPIJTBPEBDPN

Slide 3

Slide 3 text

'VLVPLBHP ࠷ۙ΍͍ͬͯΔ͜ͱ ▸ (P"1*ͷϦϑΝΫλϦϯάࢦ਑੔උʢ΄΅HPSN෦෼ ▸ &YQSFTKT/VYUKTΞϓϦͷ੔උ ▸ )BTIJ$PSQ7BVMUͷهࣄࣥච

Slide 4

Slide 4 text

'VLVPLBHP MJOVYϢʔβͷ໊લղܾΛHJUIVCͷνʔϜ΍ίϥϘϨʔλͰߦ͏

Slide 5

Slide 5 text

'VLVPLBHP લճͷ͓͞Β͍ʢ'VLVPLBHP ▸ $(0େม͚ͩͲطଘϦιʔε࢖͑ͯศར ▸ 3VCZͷਖ਼نදݱΤϯδϯ0OJHNPΛόΠϯσ Οϯά ▸ ҰԠͰ͖ͨIUUQTHJUIVCDPNMJOZPXTHPPOJHNP

Slide 6

Slide 6 text

'VLVPLBHP ͳͥ0OJHNP ▸ (Pͷਖ਼نදݱΤϯδϯ͸(PPHMF3& ▸ ࠷଎ΑΓ҆શΛॏࢹ͍ͯ͠Δ ▸ ઢܗ࣌ؒΛอূ ▸ Ұํɺ0OJHNP͸ઢܗ࣌ؒͰͳ͍ͷͰೖྗ஋͕খ͚͞Ε͹଎͍ ▸ ϢʔεέʔεʹΑͬͯ͸0OJHNPʹϝϦοτ͕͋Δ৔߹͕͋Δ

Slide 7

Slide 7 text

'VLVPLBHP $ go test -bench RE2 | sed 's/RE2/Regexp/' > before $ go test -bench Onigmo | sed 's/Onigmo/Regexp/' > after $ benchcmp before after benchmark old ns/op new ns/op delta BenchmarkRegexp-4 25775 31043 +20.44% ϕϯνϚʔΫ

Slide 8

Slide 8 text

(PͷϓϩμΫτͰ ϦϦʔεͲ͏͍ͯ͠·͔͢ʁ 'VLVPLBHP

Slide 9

Slide 9 text

'VLVPLBHP ϓϩμΫτͬͯݴͬͯ΋͍Ζ͍Ζ͋Δ ▸ ϥΠϒϥϦ ▸ ศརίϚϯυPSπʔϧ ▸ ϛυϧ΢ΣΞ ▸ 8FCΞϓϦέʔγϣϯ

Slide 10

Slide 10 text

'VLVPLBHP ϥΠϒϥϦ΍ศརίϚϯυ΍ϛυϧ΢ΣΞͷ৔߹ ▸ ϦϙδτϦͰऴΘΓී௨ʹHPHFU ▸ (JUIVC3FMFBTFTͷ"TTFUTʹ6QMPBE"1*Ͱ%PXOMPBE ▸ 31.%Ͱ1BDLBHF$MPVEͳͲ΁

Slide 11

Slide 11 text

'VLVPLBHP 8FCΞϓϦέʔγϣϯʁʁ ▸ $BQJTUSBOPؒҧ͍ແ͍͚Ͳେ͛͞ ▸ 4IFMMख͕ܰͩɺίϐϖͰ૿৩ͦ͠͏ ▸ #MVF(SFFO೰Ήඞཁͳ͠ʂ

Slide 12

Slide 12 text

(P͸ϫϯόΠφϦͳͷͰ σϓϩΠ͸ָͩͬͨ͸ͣ 'VLVPLBHP

Slide 13

Slide 13 text

(PͰελϯμʔυσϓϩΠ ख๏ͬͯԿʜ 'VLVPLBHP

Slide 14

Slide 14 text

'VLVPLBHP 8FCΞϓϦέʔγϣϯͷϦϦʔεʹ͓͚Δಛ௃ ▸ ࣄલʹ$*ʢUFTUBOECVJMEʣ͢Δ ▸ සൟʹσϓϩΠ͍ͨ͠ͳͷͰϩʔϧόοΫ΋͍ͨ͠ ▸ ৑௕Խͨ͠ϗετʹσϓϩΠ͢Δ ▸ σϓϩΠͷ׬ྃ΍ࣦഊ͸௨஌͍ͤͨ͞ ▸ Կ࣌ͲΜͳมߋΛϦϦʔε͔ͨ͠ه࿥͍ͨ͠

Slide 15

Slide 15 text

8FCΞϓϦέʔγϣϯͩͱ ༷ʑͳσϓϩΠλεΫ͕ඞཁ 'VLVPLBHP

Slide 16

Slide 16 text

λεΫ૊Ήͷ΋໘౗ͩ͠ σϓϩΠ͢Δͷ΋ ࠓͷ࣌୅ɺਓ͡Όͳ͍ΑͶ 'VLVPLBHP

Slide 17

Slide 17 text

ܧଓతσϓϩΠ໰୊ ಋೖ͠΍͢͞໰୊ 'VLVPLBHP

Slide 18

Slide 18 text

͜ΕΒΛղܾ͢Δ ιϑτ΢ΣΞΛ࡞Γ·ͨ͠ʂ ㊗㊗㊗㊗㊗ 'VLVPLBHP

Slide 19

Slide 19 text

͜ΕΒΛղܾ͢Δ ιϑτ΢ΣΞΛ࡞Γ·ͨ͠ʂ ㊗㊗㊗㊗㊗ 'VLVPLBHP ൃදυϦϒϯ։ൃɺࣦഊʜ ؒʹ߹͍·ͤΜͰͨ͠

Slide 20

Slide 20 text

'VLVPLBHP ͲΜͳ΋ͷΛ࡞͍ͬͯΔͷ͔ ▸ ϙʔϦϯάܕσϓϩΠπʔϧ ▸ (PTFSWFSTUBSUFSΛ಺แ͢Δ ▸ ඞཁͦ͏ͳλεΫ͸σϑΥϧτͰ࣮૷ ▸ ΋ͪΖΜ֦ுੑ΋ߟ͍͑ͯΔ

Slide 21

Slide 21 text

'VLVPLBHP ͜ΜͳϝϞ͕ग़͖ͯͨ

Slide 22

Slide 22 text

'VLVPLBHP ͲΜͳ΋ͷΛ࡞͍ͬͯΔͷ͔ ϦϙδτϦ (*5 (*5)6# ϓϩηεϚωʔδϟ 4&37&345"35&3 ΞϓϦ$633&/5 ΞϓϦ/&8 Φʔσ Οοτ '*-& 13 Ωϟογϡ 3&%*4 $0/46- ௨஌ 4-"$, ϙʔϦϯά

Slide 23

Slide 23 text

1VTI͢Δͱ͍͍ײ͡ʹ 8FCΞϓϦ͕ϦϦʔε͞ΕΔ ϓϩηεϚωʔδϟ 'VLVPLBHP ୺తʹݴ͏ͱ

Slide 24

Slide 24 text

ܧଓతσϓϩΠ໰୊ ಋೖ͠΍͢͞໰୊ 'VLVPLBHP

Slide 25

Slide 25 text

'VLVPLBHP ·ͱΊ ▸ 8FCΞϓϦέʔγϣϯͷσϓϩΠ͸෇ਵλεΫ͕ଟ͘ɺͦΕ͸ ϫϯόΠφϦͰ͋Δ(Pʹ͓͍ͯ΋ಉ͡ ▸ ൃදυϦϒϯͰ։ൃ͢Δͱؒʹ߹Θͳ͍Ͳ͜Ζ͔ɺൃදࢿྉΛ ௚લʹ࡞Δ͜ͱʹͳΔ ▸ ͕ɺ੎͍͸େࣄͳͷͰɺࠓޙ΋΍͍ͬͯ͘ ▸ ͦͯ͠ɺӶҙ։ൃதʂ

Slide 26

Slide 26 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ 'VLVPLBHP