私はCやC++のような高速でガベージコレクタを持ち、バッファオーバーフローが起こりにくいプログラミング言語を探しています。私はJava/C#とC/C++の間で何かを探しています。そのような言語はありますか?C/C++の速度にバッファオーバーフローのない言語があり、ガベージコレクタがありますか?
答えて
バッファオーバーフローをチェックしてゴミを収集するにはコストがかかります。これらの機能が必要な場合は、ではなく、はC/C++の速度を取得します。トレード・オフ。
JavaとC#はC++の速度に非常に近く、のほとんどのアプリケーションでは、の種類がありますので、非常に具体的なものが必要な場合を除き、これら2つの言語のいずれかをお勧めします。
C++用のガベージコレクタが必要な場合はyou can get one hereです。
Dをご覧ください。これは、ガベージコレクションなどに加えて、C++の機能のほとんどをコンパイルした言語です。
言語「スピード」はアプリケーションによって大きく異なります。特定の種類のコードでは、JVMは高速で動作します。ホットスポットは実際にはネイティブコードより高速です。一方で、機能的なスタイルと適切な最適化により、少ないコードで優れたパフォーマンスを得ることができます.Haskellのアプリケーションは、C言語のものほど高速です。
Java/C#とC++の本質的なクロス見るのに最適な場所はD言語です。ガベージコレクション、およびオプションでmalloc
およびfree
へのアクセスがあり、さらにCレベルのパフォーマンスのためのインラインアセンブリもあります。バッファーオーバーフローを起こしにくいほど十分な安全性を備えていますが、引き続きバッファーオーバーフローを起こすことができます。 http://www.digitalmars.com/d/2.0/index.html
あなたはいつでもC/C++をガベージコレクトできますが、それはコストがかかります。 Java、Haskell、MLの場合でも、Pythonではどの値がポインタであるかを知るガベージコレクタを使用できるので、C、C++、またはDのコレクタを使用するよりも高速です。
C/C++スピードの優位性はどうですか? Javaと.netはJITコンパイルされており、比較可能です。 –