• ベストアンサー

言語別(C/C++,Java等)の計算速度の違いが知りたいです。

言語別(C/C++,Java等)の計算速度の違いが知りたいです。 巡回セールスマン問題を解く(よさそうな解を見つける)プログラムを書くことになったのですが、言語が自由です。 オブジェクト指向言語で組もうと思っているんですが、C++、C#、Javaなどの言語のうち、計算速度が早いのはどれでしょうか? 順番も分かれば、教えてほしいです。 また、もしC言語で組めれば、やっぱりオブジェクト指向言語よりも早いのでしょうか? 大体でもよいので、分かる方いたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.3

C/C++だとネイティブコードになるので、バイトコードインタプリタで実行するJava/C#より速いという俗説はありますが、純粋な数値計算だとC++とJavaでほとんど違わないという実験結果を聞いたことがあります。 オブジェクトの動的生成・破棄が多いとGCを持つJava/C#ではオーバーヘッドがあるために遅くなりますが、数値計算主体で書き方が悪くなければ大差はないので書きやすい言語で書くのが正解でしょう。 # ベクタ演算命令を活用できればC/C++(インラインアセンブラあり)が格段に速くなるかもしれません

minoa_
質問者

お礼

詳細な回答、ありがとうございました。 参考になりました。

その他の回答 (3)

  • Interest
  • ベストアンサー率31% (207/659)
回答No.4

具体的な比較結果があります。 http://shootout.alioth.debian.org/ > もしC言語で組めれば、やっぱりオブジェクト指向言語よりも早いのでしょうか? それは何とも言えません。 Cで組む場合はなんでも自分で書かなきゃいけないので、下手な人が書くと無駄な処理ばかりで遅くなる虞が大。熟練した人が処理速度に徹底的にこだわって書いたプログラムなら、C++より無駄の無いプログラムになるかもしれません。 C++ならBoost、C#なら .NET、JavaならJDKに膨大なライブラリがあるので、自分で作るより「早い(!=速い)」のは間違いないでしょう。

minoa_
質問者

お礼

回答、ありがとうございます。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

期待している回答かどうかはわかりませんが、最も得意な言語で実装するのが最も高速になると思います。 CやC++を使っても、それらの言語が不得意でJavaやC#のようなコードしか書けないのであれば、バグを作り込むだけですし、バグがなかったとしても効率のよいコーディングができる可能性はほとんどありません。

minoa_
質問者

お礼

回答、ありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

C# や Java とは異なり C++ はネイティブだから (厳密にいえば Java のネイティブコンパイラがないとはいわないが), 「同じアルゴリズムを実装する」という前提であれば C++ が速いかなぁ. C# と Java のどっちが速いかは知らん. C で書く方が速いコードになるかもしれんけど, C++ とは大差ないかもしれない. この辺は「どのように実装するか」など, 細かいところにも依存するはず.

minoa_
質問者

お礼

参考になりました! ありがとうございました。

関連するQ&A

専門家に質問してみよう