39

カサンドラ についての質問

なぜ地球上の誰もがJavaでデータベースENGINEを書くのでしょうか?
なぜJavaインターフェイスが必要なのかは理解できますが、エンジンは...

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

CassandraがC/C ++コードで実行される通常のSQLよりも高速である理由/理由を誰かに説明してもらえますか?

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

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

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

4

5 に答える 5

109

C++ とはどういう意味ですか? 数十年の余裕がある場合は、手作業でコーディングされたアセンブリの方が高速です。

于 2010-02-26T13:29:27.770 に答える
58

私はいくつかの理由を見ることができます:

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

データベース ENGINE を JAVA で書く人が一体なぜいるのでしょうか。

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

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

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

于 2010-02-26T13:32:00.910 に答える
13

Java VM は、オンザフライで最適化を実行するジャストインタイム (JIT) エンジンを利用して、Java を速度の点で C++ に匹敵するものにすることを忘れないでください。Java は非常に生産的な言語であり (否定的な意見もありますが)、移植可能であり、JIT 最適化機能を備えていることを考えると、Java はこのようなものにとって不合理な選択ではないことを意味します。

于 2010-02-26T13:29:43.570 に答える
8

最新の Java ランタイムのパフォーマンスの低下はそれほど大きくなく、Java でのプログラミングは c よりもエラーが発生しにくくなっています。

于 2010-02-26T13:30:37.220 に答える