web-dev-qa-db-ja.com

CassandraがJavaで書かれたのはなぜですか?

Cassandra に関する質問

なぜ地獄がデータベースエンジンをJava?
Javaインターフェースが必要な理由はわかりますが、エンジン...

私はC/C++よりも高速なものはなく、データベースエンジンは最大速度より遅くてはならず、ガベージコレクションを使用してはならないという印象を受けました...

誰かが私にどんな意味を説明できるか/なぜCassandraはC/C++コードで実行される通常のSQLよりも高速である可能性がありますか?

編集:
「地獄の理由」の部分は申し訳ありませんが、それは本当に私には意味がありませんでした。
私は、平均的な園芸ユーザープログラムとは異なり、データベースを1回だけ起動してから非常に長い時間実行する必要があること、そしておそらくサーバー上の唯一のプログラムとして、 -明らかに重要なパフォーマンスの違いになります。

私は「機能不全」と比較/参照していました(穏やかに言うと)Java執筆時に使用していた税プログラム(またはむしろ使用したかった) )。

実際、税務プログラムにJavaを使用するのとは異なり、専用サーバープログラムを作成するためにJavaを使用することは完全に理にかなっています。

34
Stefan Steiger

いくつかの理由がわかります。

  • セキュリティ:C++でよりも安全なソフトウェアをJavaで書く方が簡単です(バッファオーバーフローを覚えていますか?)
  • パフォーマンス:それは悪くはありません。起動時の方が明らかに悪いですが、コードが起動して実行されると、それほど大きな問題にはなりません。実際には、ここで重要なポイントを覚えておく必要があります:JavaコードはVMによって継続的に最適化されるため、状況によってはC++よりも高速になります
56
Kico Lobo

C++とはどういう意味ですか?手作業でコード化されたアセンブリは、数十年の余裕があればより速くなります。

105
Martin

なぜ地獄がデータベースエンジンをJava?

デスクトップPCよりもはるかに多くのハードウェアとOSの多様性があるため、プラットフォームの独立性はサーバーにとってかなり大きな要因です。もう1つはセキュリティです。バッファオーバーフローを心配する必要がないということは、最悪の種類のセキュリティホールのほとんどが単純に不可能であることを意味します。

C/C++よりも高速なものはなく、データベースエンジンは最大速度よりも遅くては​​ならず、ガベージコレクションを使用してはならないという印象を受けました...

あなたの印象は間違っています。 C/C++は必ずしもJavaよりも高速であるとは限りません。最新のガベージコレクターは、オブジェクトの作成を驚くほど高速にすることができるため、大きな役割を果たします。

33

Java VMは、オンザフライ最適化を実行するジャストインタイム(JIT)エンジンを使用してJavaを比較可能にすることを忘れないでくださいJavaは非常に生産的な言語であり(その反論はあるが)、移植性があり、JIT最適化機能と共に、Javaは、このようなものには不当な選択ではありません。

14
Brian Agnew

現代のパフォーマンスペナルティJavaランタイムはそれほど大きくなく、Javaでのプログラミングは、cよりもエラーが発生しにくいです。

7