最も美しいプログラミング言語は?
■ このスレッドは過去ログ倉庫に格納されています
0834818
2009/05/10(日) 16:11:34> あなたが使ったのは昔のJavaであって、今のJavaはとても高速です。
以前SunのJava SE 6がかなり速くなったと聞いて
それで動かしてみたんだけど、やっぱり遅かったよ。
(細かいバージョンは忘れたけど)
一例を挙げると、今時のCPUはSSEなどのSIMD命令をだいたい備えている。
C/C++でもコンパイラの自動検出には限界があり、
プロファイラでボトルネックを探した後は
コンパイラマクロなどで置き換えて、そこだけ手書きでSIMD化する。
Javaでは言語やVMのレベルでSIMD命令をサポートしていないので、
こういうことができないんだよね。
> また、Javaにとってコードレベルでの最適化は
> むしろ最適化を妨げる傾向にあるので、決して行わないでください。
「最適化を妨げる」話は以前IBMかどこかのWebサイトで
見たことがあるけど、ちょっと誤解してるみたいだね。
データフロー解析にしてもループバージョニングにしても
できることには限りがあるから、
解析の結果、不要な処理をJITコンパイラが理解できる
コードを書いてやる必要があるよね。
コンパイラの勉強をしていると、逆にそう思うんじゃないかな?
それから、逆に最適化を助けているか妨げているかは、
ちゃんとプロファイラを使って調べないとね。
今時のPCは複雑だから、最終的には実行時間を測ってみないと。
■ このスレッドは過去ログ倉庫に格納されています