https://rust.connpass.com/event/48826/ でやったやつ
RustͰVMܕਖ਼نදݱ ΤϯδϯͬΆ͍ͷΛ ΞϨͨ͠KOBA789
View Slide
KOBA789• େֶΊͯྉཧΛָ͠Έʹ͢ΔձࣾͰࣾһ ͬͯΔ• ࣾͰδϟόॻ͍ͯΔ͠༰ͱؔͳ͍• େੲʹNode.jsͷຊॻ͍ͨؾ͕͢Δ• Node.jsྲྀߦΒͤͯ͝ΊΜͳ͍͞
KOBA789ͪΐ͏Ͳ2લʹ৮ͬͯͨΒ͍͠
MeCab(w/ IPA dic)Ͱղੳͨ͠ܗଶૉྻʹύλʔϯϚονΓ͍ͨKOBA789
KOBA789
10ྻxNߦNઍສΦʔμʔKOBA789
ϕΫτϧྻʹਖ਼نදݱKOBA789
ͳΜͱͳ͘VMܕKOBA789
Rust͍͍ͱ͜Ζ• ྻڍܕ͕·ͱ• ྻڍܕͷύλʔϯϚον͕·ͱ• ཏੑνΣοΫࠓ࣌ৗࣝͩΑͶ• Unicodeจࣈྻͷѻ͍͕·ͱ• Ͱ͍ͬͯKOBA789
ॻ͍ͨKOBA789
χʔϞχοΫJump:2FailExpect:1:໊ࢺ:1Expect:2:αมଓ:1NextExpect:1:ಈࢺ:1Expect:5:αมɾεϧ:1Match:OKNoopKOBA789
ύϑΥʔϚϯε• Ϛγϯ: Xeon [email protected]/16GB RAM• ରϑΝΠϧ: 1.7GB 3400ສߦ• ࣮ߦ࣌ؒ: 56.18sec (͖ͬ͞ଌͬͨ)• 30.26 MB/secKOBA789
νϡʔχϯά• Xcode ͷ Instruments Λ͏ͱͳΜͱͳ͘ ϓϩϑΝΠϧͰ͖Δ• εΫϦϓτݴޠͬΆ͘ࡶʹॻ͍ͨͷͰ jemalloc͕ͨ͘͞ΜKOBA789
ͦͷ͏ͪ• filebufferͱ͍͏crate͕͋ͬͯศརͦ͏• mmap ͬΆ͍͜ͱ͢Δͭ• zero(less) allocation Ͱ͍͍ײ͡ʹϑΝΠϧ ॲཧ͢ΔςΫχοΫΓ͍ͨKOBA789
͔Μͦ͏• ࠷ॳlifetimeʹ࿔͞Ε·ͬͨ͘• ϝϞϦͷؾ࣋ͪʹͳΔͱॻ͖͍͢• Boxͱ͔Arcͱ͔ҰճΘͳͯ͘ ͳΜͱ͔ͳΔ• ฒߦॲཧωοτϫʔΫͬͯͶ͐• C++͋·Γॻ͔ͳ͍ͷͰmoveͱ͔Α͘Θ͔ͬͯͶ͐KOBA789