JRubyにおけるString実装高速化 Rope 紹介 #RubyKaigi #RubyKaigiA
Staff Engineer at @Shopify. Working on YJIT and @TruffleRuby. Mastodon: @nirvdrum@ruby.social
本日ラストブロックの最初のセッション、A Tale of Two String Reperesentations。この後A会場はStringの話、Numericの話、Stringの話、となんかprimitiveっぽさ漂う #rubykaigi #rubykaigiA
2016-09-08 15:33:19文字列のデータはbyte sequenceだけではなく、エンコーディング、coreRange, byteLengthも含む. #rubykaigi #rubykaigiA
2016-09-08 15:35:46Guildの中に複数Threadある場合って結局そのThread間では既存の問題は発生しうるのかな。 #rubykaigi #rubykaigiA
2016-09-08 15:37:26RStringはMutableでflatなデータ構造。連続したデータ領域が必要。RopesはImmutableで木構造表現によるデータ構造。データ領域は断続的でもよい。複数の木でメモリを共有できる。 #rubykaigi #rubykaigiA
2016-09-08 15:37:59CRubyでもRopeの実装は試みられてますね > spinute.org/ruby/gsoc2016/… #rubykaigiA
2016-09-08 15:38:09これか jruby/truffle/src/main/java/org/jruby/truffle/core/rope at master · jruby/jruby github.com/jruby/jruby/tr… #rubykaigiA
2016-09-08 15:38:26RopeとJRuby Truffleの文字列結合、MRIの80x 速いww #rubykaigiA
2016-09-08 15:41:24「RStringではconcatenationはO(n)操作、RopeだとO(1)操作。メモリー効率もRopeのほうが良い。」まぁ2要素を子に持つ木を作るだけだからそうなるわな。 #rubykaigi #rubykaigiA
2016-09-08 15:41:33JRuby+Truffle - a High-Performance Truffle Backend for JRuby github.com/jruby/jruby/wi… #rubykaigiA
2016-09-08 15:41:44