- ベストアンサー
J#とJavaのスピードの違い
作成したJavaプログラムを、Visual J#(というか、.NET Framework SDK)でMSILにコンパイルし、.NET Framework上で実行した場合と、 普通にJDKでバイトコードへとコンパイルし、JRE上で実行した場合とで、実行するスピードの差異は存在するのでしょうか? 僕の勝手なイメージとして、J#の方が速いというイメージがあるのですが、実際どうでしょう? 今Javaで2DRPGを作ろうとしているのですが、J#の方が速ければ、Windows版だけJ#でコンパイルしようと思っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
J#を使ってコンパイルするのは構わないのですが、コード変わっちゃいますよ。 パッケージ名が変わりますので…。 JavaとJ#とでは、例えばjava.io.* が System.IO.* になるとか、そういう差違があります。 ですから、Javaのコードだからと言ってそのままJ#でコンパイルできるというわけではなかったはず。 よしんば出来たとしても、それは恐らくJavaのバイトコードです。 2DのRPGならば大規模なプログラムになりますので、そういったパッケージをすべて変更してまでJ#を使うというのはちょっと現実味が薄い話だと思います。 速度に関してですが、Javaは(少なくとも3年前に使ったAWTは)マウスクリックに対する応答が鈍くてやってられなかった覚えはあります。 GDI+もそこまで速いわけじゃありませんので、せっかく2D RPGほどのものを作る気があるのでしたらC# + Managed DirectXを覚えて使った方が良いと思います。 C#はJavaそっくり(むしろパクリ疑惑)なので違和感なく覚えられるでしょう。クロスプラットフォーム性は捨てることになりますが、ゲームだし、私なら処理能力を取りますね(JavaのGCは煩い)。 ゲームを作るのにより理想的なのはC/C++ に加え DirectXですが、.netの速度でも実用上ほとんど問題ありません。弾幕ゲームでも作らない限りはまったく気にならないでしょう。 GCも意外とおとなしく、RPGくらいなら意識することなくプレイできます。 言語よりはむしろコーディングの仕方のほうが大きな差を作るでしょうね。
その他の回答 (1)
- mamuru77
- ベストアンサー率68% (11/16)
実行速度・・・とは少し関係がないのですが Javaで作ったものはJavaのVMだけで動きますが J#はFrameWorkとそのFrameWorkに対応したバージョンのJ#ランタイムが追加でインストールする必要があります(確か J#とJavaではJavaのほうが実行できる人は多いと思いますが・・・
お礼
ご回答ありがとうございます。 J#ランタイムなどというものも必要なのですか・・・。案外面倒ですね。 一応、Windows版だけ.NET Frameworkでコンパイルして、他のOSのは普通にJDKでコンパイルしたものを配ろうと思っていました。
お礼
ご回答ありがとうございます。 パッケージ名が変わってしまうのですか・・・。Javaとは結構違いが大きいものだったのですね・・・。