JIT の話あれこれ

7
Dai MIKURUBE @dmikurube

そんなに変わったのだとすれば単純に知らないので知りたい

2013-07-03 00:14:02
Dai MIKURUBE @dmikurube

C++/Java と JIT いかんの話は軸がぜんぜん別なのはそのとおりですねー。 C++ JIT きたこれ

2013-07-03 00:15:46
ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro

関数の inline 化って inline 化した後引数伝播してさらにぐりぐり弄くれるから速くなりやすい、くらいのイメージ。

2013-07-03 00:16:30
Akso de la Malbono @Cryolite

C++「スタックトレースってなんれすか(^q^)」

2013-07-03 00:16:39
Dai MIKURUBE @dmikurube

LLVM の JIT って動的最適化は最近どれくらいがんばってるんでしょう。このへんもよく知らない

2013-07-03 00:17:07
chunjp @chunjp

人間アセンブラ vs Compiler, それ単にCompiler (人間) vs. Compiler (プログラム)では

2013-07-03 00:19:01
Takeshi Yamamuro @maropu

@mkasahara とはいえ分岐確率が低い順から条件を並べたくなりますよね

2013-07-03 00:25:29
Dai MIKURUBE @dmikurube

というか JIT って言った時に指すものがけっこうみんな違ったりするので、総覧できる一次文献ほんとほしい

2013-07-03 00:27:44
Masahiro Kasahara @mkasahara

@maropu いや、そのケースは(規則性が無いなら)絶対分岐確率低い順に並べるべき! 元の文脈はJITの場合にのみ除ける仮想関数呼び出しオーバーヘッドがあるか、って話なんですが、JITで除けるケースは分岐予測でもいけるし、パイプライン乱さなかったら間接参照なんて誤差、って話。

2013-07-03 00:28:54
Dai MIKURUBE @dmikurube

というか仮想関数周りって宗教戦争級に議論になりやすい気がするけど、現実的な状況で数値出して議論してる文献とかどれくらいあるんだろ。例えば WebKit に全部 virtual つけて回ったら遅くなりませんでした/こんだけ遅くなりました、みたいなの。見てる領域が違うだけな気がする

2013-07-03 00:35:43
chunjp @chunjp

「スタックトレースってなんですか?」「あの-fomit-frame-pointerで消えるやつです」

2013-07-03 00:37:02
Akso de la Malbono @Cryolite

あの子を(人力コンパイルから)解き放て.あの子は人間だぞ.

2013-07-03 00:37:30
Deprecated: おねーちゃんですよ!⚓/xhl_kogitsune @xhl_kogitsune

人力コンパイルしてると言明している人でここまで狭義の人類なし

2013-07-03 00:38:51
Masahiro Kasahara @mkasahara

@dmikurube 新しいのは知らないけど、仮想関数向けの分岐予測が議論されていた頃のいにしえのデータなら例えば http://t.co/9NQngJ6eJt とか。

2013-07-03 00:40:32
Deprecated: おねーちゃんですよ!⚓/xhl_kogitsune @xhl_kogitsune

人力コンパイルは辞められない。辞めるとかそういうのじゃない、人力コンパイルは常にそこにあるものだ。あとは、人力コンパイルが楽しく簡単にできる支援環境や言語機構があるかないか、の話だと思う。

2013-07-03 00:40:40
Akso de la Malbono @Cryolite

人間の能力は,人力コンパイルよりも大事な仕事に使われるべき限られた貴重な資源.

2013-07-03 00:41:46
Dai MIKURUBE @dmikurube

超でかいもん相手にしてる人の場合は複雑さ要因が多すぎて客観的によくわからんし、「遅くなるわけがない」という人の場合どれくらいの仮定が裏に置かれてるのか客観的によくわからんし、結局あまり客観的な議論になることがないような印象がある

2013-07-03 00:41:49
ReiOdaira @ReiOdaira

STAMPベンチマークのC版とJava版を走らせた時はJavaの方が平均で20%速くてベンチマークによって最悪-24%最良+170%って感じだった。ただしJavaの方はベンチマークを長く走らせて十分にJITされた後の定常状態のスピード。

2013-07-03 00:42:42
Deprecated: おねーちゃんですよ!⚓/xhl_kogitsune @xhl_kogitsune

そういう言語機構がないと、「Fortranの域に留めておいたソースが本来の姿を取り戻していく。言語機構の欠けた呪縛を解いて、Fortranを超えたメタプログラムに近い存在へと変わっていく」とかそういうことになる (Verilogとかでもかまいません)

2013-07-03 00:43:07
Takeshi Yamamuro @maropu

@mkasahara なるほど文脈読んでませんでした、すいません・・・、たしかにそうですね、最近だと下手にインライン化するとμopキャッシュから溢れるとか変な地雷踏みますからね

2013-07-03 00:43:20
Akso de la Malbono @Cryolite

……と思いましたが,限られた貴重な資源を浪費するのは人間に許された特権やっっっ!!! バンバン浪費やっっっ!!! 人間の能力のすべてを費やしてケモミミ画像蒐集やっっっ!!!

2013-07-03 00:44:27
ReiOdaira @ReiOdaira

まー、プラットフォームはメインフレームで、Cの方はXL C、Javaの方はJ9/TR、というあらゆるものが特殊な環境だが。

2013-07-03 00:45:27
Masahiro Kasahara @mkasahara

WebKit とかそもそもレイテンシ重視のアプリなので、スループットしか出ない JIT の効果をどうこう議論する対象としては良くないのではないのか。

2013-07-03 00:45:57
Akso de la Malbono @Cryolite

「C++ の域に留めておいたソースが本来の姿を取り戻していく.言語機構の欠けた呪縛を解いて, C++ を超えたメタプログラムに近い存在へと変わっていく」あ……れ? 違和感が仕事をしていない……?

2013-07-03 00:46:38
Dai MIKURUBE @dmikurube

「ふつーに設計して書いたらそんなん起きるわけないって」 v.s. 「いやそれ現実的には不可避なこと多いし」的な。話のレイヤーが違うような感じ

2013-07-03 00:47:36