Rubyはなぜ遅いのか Rubyフルコミッター卜部さんが語る 400倍速くなる最適化アプローチ #RubyKaigi #RubyKaigiA

Optimizing Ruby @shyouhei http://rubykaigi.org/2016/presentations/shyouhei.html "I made ruby 10x faster. Let me show you how."
7
前へ 1 2 ・・ 6 次へ
うたがわきき @utgwkk

Ruby が遅いのは最適化されていないから #rubykaigi #rubykaigiA

2016-09-10 14:25:29
どみにをん525 @Dominion525

Rubyが遅いのは最適化さてないから。#rubykaigi #rubykaigia

2016-09-10 14:25:31
igaiga @igaiga555

「Rubyが遅いのは最適化されてないから」 #rubykaigiA

2016-09-10 14:25:31
Mastodon @toshi_a

逆に言えばまだ最適化の余地がいくらでもあるということか #rubykaigi #rubykaigiA

2016-09-10 14:25:32
undo @123undo

Rubyが何故遅いか? GCとかダイナミックとかいろいろ言われてきたけどそうではない。最適化されてないから。 #rubykaigi #rubykaigiA

2016-09-10 14:25:37
Mastodon @toshi_a

まあInteger#+を再定義するかって話よな #rubykaigi #rubykaigiA

2016-09-10 14:26:40
黒曜@Leaner Technologies @kokuyouwind

例えば1+2というコードはputobjectを2回してaddしてるが、最初から3とすればいい。どうしてそうしてないかというと、Integer#+を再定義可能だから。とはいえ、そんなことは邪悪なことをしないかぎりそうそうしない。 #rubykaigi #rubykaigiA

2016-09-10 14:27:11
黒曜@Leaner Technologies @kokuyouwind

戦略。基本的には最適化して実行する。もし再定義されていたら最適化したのを捨てて再実行する。再実行分時はペナルティになるが、よくあるケースでは早くなる。SELFから導入したテクニック。JRubyなどでは個別に実装されている。 #rubykaigi #rubykaigiA

2016-09-10 14:28:28
Yotaro TAKAHASHI @PoohSunny

JRubyやRubiniusはdeoptimizationの機構が入ってるから、MRIより速い。 #rubykaigiA #rubykaigi

2016-09-10 14:28:29
黒曜@Leaner Technologies @kokuyouwind

今回の戦略。JITと不可分な話だが、今回はnative codeへのJIT compileはせず、VMの実行シーケンスに変換する。 #rubykaigi #rubykaigiA

2016-09-10 14:29:24
Hideki Hamada @jakalada

NumPyとかがやってるような数値計算向けの最適化とは異なる範囲の話だろか #rubykaigi #rubykaigiA

2016-09-10 14:29:34
斎藤ただし, Tadashi Saito @_tad_

30分で60枚って書いてあったから、1枚30秒以上かかったらオーバー?(>_<) #rubykaigi #rubykaigiA

2016-09-10 14:30:02
黒曜@Leaner Technologies @kokuyouwind

Rubyの内部実装の話。iseq_encodedとiseq_sizeがあるが、加えてiseq_deoptimizedとcreated_atを作る。 #rubykaigi #rubykaigiA

2016-09-10 14:31:10
mctk - マクトク @mactkg

なんでNOP?と思ったけどなるほど分かりやすい #rubykaigi

2016-09-10 14:31:20
takano32 @takano32

iseq iseq と出ているけど、よく分からないヒト向けに一言入れると iseq というのは Instruction Sequence のことです。 #RubyKaigi

2016-09-10 14:31:26
黒曜@Leaner Technologies @kokuyouwind

Pure Cで書かれてるので移植性が高い。PCに影響を与えないのでVMの状態を気にしなくて良い。脱最適化していないシーケンスを保存しているので、何度も再定義された場合にも対応できる #rubykaigi #rubykaigiA

2016-09-10 14:32:36
どみにをん525 @Dominion525

再定義が発生した時にカウンタが加算される。 #rubykaigi #rubykaigiA

2016-09-10 14:32:39
前へ 1 2 ・・ 6 次へ