web-dev-qa-db-ja.com

Python vs. Javaパフォーマンス(実行速度)

可能性のある複製:
is python Java/C#?より遅い

各言語のすべての特性を無視し、速度のみに焦点を合わせます。どの言語がパフォーマンス面で優れていますか?

あなたはこれは答えるのはかなり簡単な質問だと思うでしょうが、私はまともなものを見つけていません。

ある種の操作はpythonを使用した方が高速かもしれませんし、その逆もありますが、これに関する詳細な情報は見つかりません。誰でもパフォーマンスの違いに光を当てることができますか?

48
Bijan

JavaはPythonよりも高速です。簡単に。

Pythonは多くの点で有利です。速度は必ずしもそれらの1つではありません。

参照資料

80

両方の言語の特性を無視する場合、「速度」をどのように定義しますか?どの機能をベンチマークに含める必要があり、どの機能を省略しますか?

例えば:

  • JavaがPythonよりも速く空のループを実行するときにカウントされますか?
  • または、Pythonループ本体が空であることに気づいたとき、ループヘッダーに副作用がなく、ループ全体を最適化するのが速いですか?
  • それとも「言語特性」ですか?
  • 各言語が1秒間に実行できるバイトコードの数を知りたいですか?
  • どれ?高速なものだけですか、それともすべてですか?
  • Java VM実行時にバイトコードをCPU固有のアセンブラーコードに変換するJITコンパイラーをカウントするにはどうすればよいですか?
  • コードのコンパイル時間を含めていますか(これはJavaに追加されていますが、常にPythonに含まれています)?

結論:あなたの質問はあなたが望むものを定義していないので答えがありません。あなたがそれをより明確にしたとしても、あなたは実生活で数えられない何かを測定するので、質問はおそらく学術的になるでしょう。私のすべてのプロジェクトでは、JavaとPythonは常に十分に高速でした。もちろん、特定の問題のために他の言語よりも1つの言語を好むでしょう。特定のコンテキスト。

34
Aaron Digulla

PythonとJavaはどちらも多くの異なる実装が存在する仕様です。たとえば、CPython、IronPython、Jython、PyPyはほんの一握りのPython実装があります。Javaの場合、HotSpot VM、Mac OS X Java VM、OpenJREなど。Jythonは= Javaバイトコードなので、多かれ少なかれ同じ基盤となるJavaを使用します。CPythonはCに直接いくつかのことを実装しているため、非常に高速ですが、再びJava VMもCで多くの関数を実装します。おそらく、合理的なステートメントを作成するには、関数ごとに、さまざまなインタープリターとVMで測定する必要があります。

13

異なる言語は、異なるレベルの効率で異なることを行います。

ベンチマークゲーム には、さまざまな言語で実装されたさまざまなプログラミング問題が満載されています。

9
Oli