Cって死滅しちゃうの?
■ このスレッドは過去ログ倉庫に格納されています
0428デフォルトの名無しさん
NGNG>結局、実行時にコンパイルするくらいなら、なぜ最初からコンパイル
>しとかないのか、というあたりまえの疑問は残りますね。
遅いレスだが。
たとえばCでごく短い関数を書いたとき、コンパイル単位が違えば
決してインライン展開されないが、Javaならやることがある。
たとえばC++で仮想関数を書けばvtableを経由することになるが
Javaなら、finalを付けなくても、オーバーロードしてる奴がいなければ
直接呼出しに展開することがある。
配列の範囲チェックがどうしても必要な場合、Javaなら極限まで
チェックを省略してくれるが、C++でテンプレート使ったらどうなんだろ。
Javaが遅いとすれば、JIT自体がとんでもないメモリ喰いなのと、
オブジェクト生成のコストが原因だろ。メモリがふんだんにある環境なら、
事前コンパイルとJITを比べて、JITが特に不利とは思えない。
実際、Javaにはネイティブコンパイラもいくつかあったはずだが、
軒並みVMより遅かったはずだ。
■ このスレッドは過去ログ倉庫に格納されています