技術的な観点からは、なぜC言語より速いJavaアプリケーション開発よりも?

以下はその答えを整理フォーラムです

1.コンパイル以上の観点から、JAVAの.javaファイルは、.classファイルに実行時にコンパイルされ、その後、Java仮想マシンは、さらに.classファイルは、コールに対応するマシンコード命令にコンパイルされます。C言語では、プリコンパイルされたファイルに、プリコンパイルして、アセンブリ言語、バイナリファイルにコンパイルされます。機械に直接対処します。実行中は、javaの多くのステップを省略しました。

 

2.Cプログラムは、ほとんどの時間は速くJava以外になりますが、限られた効率が得。Javaは、今よりもこれまでと大幅に改善され、主にJITコンパイラはJavaバイトコードをコンパイルするのに時間がかかり、GCは、Javaの効率に影響を与える可能性がありますが遅いです。

 

純粋なJavaとCギャップで計算技術、JIT、の進歩3.起因は小さいが、JavaやCコードは、完全に同等なので、メモリ管理の異なる機構の両方、メモリ管理Cを完全に制御することができることはできないが、Javaに主に依存しますJVMのGC機能を、どのJavaのより安定した動作効率につながる、と密接にCの動作効率とコードの品質に関係しています より高速のJavaより高品質、高品質のCが、低品質のCは、おそらくJavaのの低品質よりもゆっくりと戻すことです。
実際には、シンプルで、速度よりも特に公平ではない、本質的にマルチスレッドのJava(JITとGC)、およびメモリ使用量の大幅より一般的なJavaのため。

 

4.C言語はコンパイル言語であり、Java言語を識別し、実行するためにコンピュータのこのようJAVAコードバイナリ言語を翻訳するための言語、インタプリタ言語です。一般的にそれを言えば、C言語は速いJava以外ですが、プロセスは、C言語のコースタイプを実行されているため、およびJava言語は、顧客の訪問は非常に大きいですが、より適切なように見えるのJavaそうならば、スレッドタイプです。

[拡張]

C言語は、Java言語が半分半分言語を解釈してコンパイルされ、コンパイル言語です。両方のレベルが同じではない、それは速度が同じではないと判断します。それはより速く走るC言語ので、だけでなく、Javaで?Javaオブジェクト指向のソフトウェアパッケージは、開発やプログラミングの経験のスピードを上げる助けていますので。
栗の場合:
人々は普通の生活、ダイレクトドリンクグルコースを生きるためのエネルギーを吸収する必要があり、アミノ酸は、より簡単に、それは時間を節約し、吸収が、なぜ人々はまだのようなゆっくりとそれを味わうために様々な料理を作るのですか?グルコースは、アミノ酸急速な吸収、高い変換効率が、それは味の良い、人々が満たすことができないないもののので審美的な要件は、それがより高度な食品に必要となり、徐々に体にエネルギーを提供するという同じ目的を達成するために、最終的消化、および。[ ここに私は彼の例は非常に妥当だと思いますが、あなたが表現したいという意味、またはほとんど理解できていない]
概要:
あなたは、運転効率にそのグルコース注意を払う場合は、まずいないアミノ酸は、その後、C言語で大規模なプログラムを書く完全になかったです問題、Cは同じオブジェクト指向言語を達成することができます。あなたは、開発のスピードに注意を払う場合は、私は、仕事の残業をしたい、よりおいしい料理を食べて、たとえば、あなたはJava言語のような強力なパッケージを選択する必要がありません。

 

5.Cは速い疑いを超えているが、私はこの実行時コンパイラのパフォーマンスの損失は無視できると考えて、コール命令を直接CPUによって実行された後、一度だけコンパイルされ、Javaコンパイラの最適化は、いくつかのケースではCPU命令をコンパイルし、非常に強いですまた、少ないCよりますが、Javaのメモリ・フットプリントは本当に大きいです。

その最も基本的では6、したがってCPUはそれ以上にJavaコンパイラである理由として、コードを実行するために多くの時間を費やす必要がありますCよりもプログラムのバイナリコードの後に​​同じコード、コンパイルされたJavaプログラムのことですプログラマが便利を提供するだけでなく、コードの量を増加させ、他の操作の多くを行います。

 

7.CとJavaの動作効率は、今ではあまり差があってはならない比較それ
別のボトルネックJavaアプリケーションとC実行中の非常に異なるアプリケーションのは、それ自体では一般的ではありません。
[ ような機能モジュール、プログラムを実行するために、C 1ミリ秒、10ミリ秒にJava実行が、このモジュールは、リモートホストと、またはデータベースへのアクセス、100ミリ秒のロットにいくつかの後ろに前後に通信する必要があります]。この場合、通信効率を向上させる方法、通信回数を減らす、またはデータベース最適化が主な関心事となります。また、これは、Javaアプリケーションの主な関心事です。
また、それは間違いなく十分ではありません簡単なプログラム実行中の速度の問題を考えます。たとえば、クライアント要求に応答して10ミリ秒、Bのシステムへのユーザ要求に応答して、同じシステム、Aシステムの2つの機能は、100ミリ秒、実際には、ヒトのための10ミリ秒と100ミリ秒のうち実質的であり、また、非常に高速な初期システムがオンラインですが、速い、それでも応答効率の後に同じ2つまたは3年間の維持と6ヶ月〜1年後、応答速度はシステム初期応答の良い上のラインBのに対し、減少した場合、または10が同時に来ます、Aは10ミリ秒、B平均100ミリ秒の平均であるが、同時に100人はそれを使うのか?

 

おすすめ

転載: www.cnblogs.com/duoduozwr/p/12419522.html