2012-02-22 8 views
4

私は何年もC/C++コードを書いています。最近私のコンピューティングの問題を解決するために使用している非常に細かい製品のいくつかはすべてJava(例:Lucene/Solr、Hadoop、Neo4j、OpenNLPなど)で書かれているので、インターネットアルゴリズム(検索、大きなデータなど)のJavaの人気

私はJavaが実際にインターネットアルゴリズム(クラスタリング、検索、ビッグデータ&など)で非常に人気が高くなっている過去3〜4年以来、この変更を見ています。 C + +で書かれた検索スフィンクスのようなものは、C++で書かれた製品のものですが、GoogleはMap ReduceをC++などで書いています)

これらの要因は最近、Javaを非常に普及させている要因の& 特に情報検索&大きなデータドメイン

私はインターネットアルゴリズムの分野で非常に人気が高いJavaの強みを知りたがっていますか?プラットフォームの独立性のためだけですか?

+2

ああ、古いJava対C++のパフォーマンスストーリー。ベンチマークのうち98%は、ブランケット・ステートメントが役に立たないことを理解しているため、言語と他のベンチマークをどのようにベンチマークするのかがわからない人によって行われます。最終的には、C++が優位性を持つもの(メモリ不足、sse、不正確なfp数学など)がこれらのために特に有用ではないことを考慮すると、もの。 – Voo

+2

あなたが指定したドメインの場合、純粋なCPUバウンドのパフォーマンスが最も重要ではありません。 –

+0

@ Yavar、それはメモリにバインドされた操作であり、CPUにバインドされていません。 L1は十分に大きいアルゴリズムで、管理対象と非管理対象の違いを無関係にします。 –

答えて

1

plattformの独立性は素晴らしい機能ですが、必ずしもjavaでは機能しません。あなたは

Javaは、それはあなたが、ポインタ算術演算を使用することはできませんし、何かがwents場合は、あなた自身の

上のメモリ割り当てを管理することはできませんC++

よりも安全だという事実のためにその人気を得る何をすべきかに応じて、ひどく、あなたは例外やエラーを誤解し、またはプログラムは、単にクラッシュが、Javaで、あなたは間違いなく

がはいあなたがC++ですべてのことを行うことができますしたくないことをやって継続していない比較的確実であるが、それは質問ではないですね。あなたはネットワーク往復時間も考慮すると、私は、JavaとC++はそう頻繁にそのXを証明するために使用されている任意の、不自然な状況の外で同様のレベルで実行することを主張するだろう

3

はY.

よりも高速です現実の世界の遅れなど、私はC++アプリケーションがJavaとは対照的にC++であるために、Javaアプリケーションに対して測定可能な利点を提供することはできません。しかし、よく書かれたアプリケーションとあまり書かれていないアプリケーションの間には、大きな違いがあります。

関連する問題