JIT の話あれこれ

7
前へ 1 ・・ 3 4 次へ
Dai MIKURUBE @dmikurube

まあ後の方に言ってた仮想関数の話は JIT 置いといて実際どーなのよ、という疑問です。いやほんとに何も影響ないんだったらもっと virtual が付いてていいと思うんだほんと (逆切れ

2013-07-03 00:50:57
Masahiro Kasahara @mkasahara

実際問題としては、結局介入する人間がどれだけ労力をつぎ込めるかでどうするのが良いかは決まるので、つぎ込める能力と時間を先に決めるしか無い。

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

@dmikurube 「最初の一回目の呼び出し」の速度が全然違うので、ループの中なら気にするだけ無駄だけど、ループの外なら気になる、が多分答え。

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

@mkasahara 引き続きWKの例で言えば、ツリーをひたすらごにょごにょする操作が主なのでそれはうまく落ちないでしょうね

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

ところでどうでも良いですが, C++11 から final が入ったので devirtualization が確実に効く場面が(対 C++03 比で)増えたはずですが,これ活かしたプログラミングテクニックってあるんじゃろか?

2013-07-03 01:01:04
Masahiro Kasahara @mkasahara

定量比較は誰かに是非やってほしいところ。

2013-07-03 01:01:38
Dai MIKURUBE @dmikurube

んで例えばツリーをひたすらごにょごにょするスループット重視のアプリケーションを仮定したら (そんなんあるのか?) それに対してパフォーマンスは実際どうなるんだろうとか。まあ値は見てみたいけど現実的なベンチマークかというとよくわからんな...

2013-07-03 01:04:27
Dai MIKURUBE @dmikurube

STAMP って transactional memory 的なやつでしたっけ

2013-07-03 01:05:50
ReiOdaira @ReiOdaira

@dmikurube です。ので本来の目的とは違いますが、シングルスレッドでTM使わずにも動かせるので。

2013-07-03 01:07:30
Dai MIKURUBE @dmikurube

パフォーマンス周りの話は関連パラメータが多すぎて、自分が見てる範囲の local minimum に落ちたり己の信念を貫いたり (≒押し付けたり) する方向に行きやすいのだよなー。客観的なデータ出そうにも定義域が広すぎて違う定義域同士で議論がぶつかったりするし

2013-07-03 01:12:36
Dai MIKURUBE @dmikurube

論文を出すとか記録を出すという意味ではどっかの方向に貫けば成果になるし、自分のターゲットに集中すれば実際に役に立つけど、違うターゲット間ではすごく議論がしにくい

2013-07-03 01:14:20
shinichiro hamaji @shinh

@phoenixstarhiro 個人的には、十分なパフォーマンスが出ることがほとんど、GCの方が速いことも、という主張に強く反論しようとは思わないけど、パフォーマンスが十分でないとわかった時の大変さが普段から自力メモリ管理する大変さに比べて大きすぎる、ってのが

2013-07-03 01:15:28
Masahiro Kasahara @mkasahara

@dmikurube そう思います。そもそもWKはメモリ管理からしてスタックアロケータを駆使して typical な使用量だとヒープ触らないようにしたりといろいろコードが変態的なので、普通のアプリだと見えにくいオーバーヘッドが見えやすいと思っています(多分偏見)。

2013-07-03 01:23:15
Dai MIKURUBE @dmikurube

言語が違うとまたそこで定義域や傾向が変わってきたりするので始末に困る (e.g. Java で書かれるプログラムでは C++ の場合より短い関数を大量に作ることが多い、とか) その傾向を前提にしてる人とその傾向を知らない人で議論してもかみあうわけがないし。かくして宗教論争へ

2013-07-03 01:24:52
Dai MIKURUBE @dmikurube

というわけで、実際に役に立つ「速い」環境を作りたければ real-world でどう使われるのかを見ないとしょうがないし、そのために導入されてる前提をいろいろ理解しないとその知見をそのまま他に持っていくのは難しいっすよ、という個人的な結論でした

2013-07-03 01:33:43
ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro

@shinh 普段気を使わない分、気づいたときには手遅れ感がありますよね。。。 結局 gc の挙動調べたりしないといけない分余計な手間が。。。 あでも、python とかだと比較的気楽に「とりあえず gc 止めとく」とかやったりします。

2013-07-03 01:35:16
Dai MIKURUBE @dmikurube

某 JVM と WebKit と V8 の 3つでも既に前提がいろんな違っていて、それぞれ表面だけ舐めてきてなんとなく面白かった。解説せえといわれるとちょっと困るくらいの表面具合だけど

2013-07-03 01:41:28
Dai MIKURUBE @dmikurube

さっきから WebKit 連呼したがもしかして Blink と言わないといけないのだろうか。でも俺 Blink になってから自分で触ってない...

2013-07-03 01:43:23
ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro

そういえば、C/C++とかでobject pool実装するの、あまり抵抗ないんだけど、Java でやると大変負けた感じがする。

2013-07-03 01:46:18
Dai MIKURUBE @dmikurube

@phoenixstarhiro それは間違いない! (C/C++でも途中でそのレイヤー置き換えるのは死ねる...今やってる人いるけど)

2013-07-03 01:55:53
ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro

が、なんだかんだで低レイヤーで無茶をやってのけるのも、面白かったりする。

2013-07-03 02:02:51
前へ 1 ・・ 3 4 次へ