JavaでC++並みの実行速度を出すPGを組むスレ
■ このスレッドは過去ログ倉庫に格納されています
0492デフォルトの名無しさん
2007/05/27(日) 18:10:46加えて、Javaが「速度的アドバンテージが同等」と語れるのも、「余裕あるメモリ」と
「ある程度以上のCPUパワー」がある環境前提だしね。そういった「恵まれた」環境で
速度差を「誤差」に変えてるわけで。
実際JavaのVMのバイトコード設計の酷さは、ソフト屋が考えた仮想CPUっていっても酷いもんだし。
あれが、必ず一枚かむ環境で、「C++より速い」はありえない。
ネイティブコード吐けば別だけど。「Evalれる」事がネイティブコード化も拒否するし。
ダイレクトなアドレス指定でメモリをさわれたり、オブジェクトの開放タイミングを
自前で制御したり・・・。
C++ではこれらの機能はあたりまえで、その上で速度的アドバンテージは同等か、
クリティカルセクションでは同等以上。コンパイラに精通していれば、出力される
プロセッサのコードを意識したコーディングも可能。Javaは頑張ってもバイトコードに
されてしまう。
結局は適材適所で、高級アセンブリ言語の延長を欲するシーン(OS、デバドラ、組み込み、ゲーム)では
Javaは「速度」的にも機能的にも、足りていないのが現実だと思われ。
(っていうか、そういうシーンではC++ですら否定されがちで、未だCが使われてる事も多いけど)
ただ、アプリケーションの現場では>>490の言ってる事は的を射てると思う。
しかし、Java登場からこれだけ時間がたって、未だ「実用アプリ」の数が少ないのは
C++はもとよりC#やRuby、PHP等、各方面に言語/環境的なライバルが居る現状で、いかがなもんかと。
>>490の意見は楽観的すぎとも思われ。Javaもアプリで頑張って速度を稼ぐ事をやっても
いいと思うんだけど。このスレの(本来の)目的はそこじゃないの?
C++でだって、速度の速いコード書くためには、いろいろプログラム側が努力してんだぜ。
Javaの特性に基づいて、「このシチュエーションはVMのパフォーマンスに影響を与える」とか
そういう話は出来ないもんかね?VMの効率が良くなってアプリの速度が上がったのは、
コーディング側ががんばった結果じゃないんだぜ。
■ このスレッドは過去ログ倉庫に格納されています