大量のデータを処理するプログラム(プログラム自体が大規模じゃない)なら別にJavaでもいいじゃない、って言ったら何かポカーンって顔されちゃった。
いつもおいらC++賛美してるってのもあるんだろうけれど……。
何か馬鹿扱いされそうで不安で、その場で言えなかったから増田に投稿。
Javaは中間コード、C++はネイティヴコードってことは、JavaとC++との差はVMにあるはず。ということは、実行において、VMがネイティヴコードに翻訳する分の遅延とVMそれ自体の分のメモリ消費が上積みされる分、Javaが不利になっているはず。
大量のデータを処理するプログラムは、データはVMには直接は関係しないし、VMも最近は賢いらしいからメモリにネイティヴコード展開したらそれを出来る限り使い回すだろうから、よほど複雑な処理でない限り、データを処理している間はC++と(変換された機械語の優劣は除いて)差は殆ど無いはず。
故に、処理するデータが膨大になればなるほど(ただしメモリ資源が貴重になるほどひどい環境や処理でないことを仮定する)コード変換の時間なんかの割合が相対的に小さなものになっていって、その結果Javaの実行効率は良くなると思う。逆に、極めて少ない処理の場合、Javaはアホの子になっちゃうと思う。
でも本当の所は知らないので、えろい人教えて下さい。
逆。 データ量が膨大な、動画やCG、DBエンジンなどの処理なら、C++。 JITがランタイムに最適化できるから、マルチプラットフォームアプリならVM系。 学習曲線が短くてすむから、経...