Pythonの利点はコードの可読性と開発速度であると常に思っていましたが、時間とメモリの使用量はC ++の場合ほどではありませんでした。
これらの統計は私を本当に強く打った。
PythonとC ++の時間とメモリ使用量について、あなたの経験から何がわかりますか?
Pythonの利点はコードの可読性と開発速度であると常に思っていましたが、時間とメモリの使用量はC ++の場合ほどではありませんでした。
これらの統計は私を本当に強く打った。
PythonとC ++の時間とメモリ使用量について、あなたの経験から何がわかりますか?
回答:
あなたはそれらの統計を間違って読んでいると思います。彼らは、PythonがC ++ よりも最大で約400倍遅いことを示しており、単一のケースを除いて、Pythonはよりメモリを独占している。しかし、ソースのサイズに関しては、Pythonが完全に勝っています。
私のPythonでの経験は、Pythonが深刻な数値計算を行う場合、C ++よりも10倍から100倍遅いという同じ明確な傾向を示しています。これには多くの理由があります。主な理由は次のとおりです。a)C ++がコンパイルされている間にPythonが解釈されます。b)Pythonにはプリミティブがありません。組み込み型(int、floatなど)を含むすべてがオブジェクトです。c)Pythonリストは異なるタイプのオブジェクトを保持できるため、各エントリはそのタイプに関する追加のデータを格納する必要があります。これらはすべて、ランタイムとメモリの両方の消費を著しく妨げます。
ただし、これはPythonを無視する理由にはなりません。多くのソフトウェアは、100時間の遅延要因があっても、多くの時間やメモリを必要としません。Pythonがシンプルで簡潔なスタイルで勝てるのは開発コストです。開発コストのこの改善は、追加のCPUおよびメモリリソースのコストを上回ることがよくあります。ただし、そうでない場合は、C ++が優先されます。
numpy
and を広範囲に使用する場合でもscipy
、大規模なpython
コードベースでは、純粋なpythonに多くのコードが含まれる可能性が高く、物事はよりも遅くなりC++
ます。PythonスクリプトC++
は、C
コードのパーセンテージがに達すると、スクリプトの速度に近づき100
ます。その時点で、Pythonスクリプトではなくなります。確かにpythonは離陸していますが、それが高速であるからではありませんC++
-使いやすいからです。
シュートアウトにおけるPythonの最も遅い(> 100x)使用はすべて、高いGFlop / sカウントを必要とする科学的操作です。とにかくそれらのためにpythonを使用すべきではありません。Pythonを使用する正しい方法は、これらの計算を行うモジュールをインポートして、家族とリラックスした午後を過ごすことです。それはpythonicな方法です:)
ソースのサイズは、実際に測定するのが賢明ではありません。たとえば、次のシェルスクリプト:
cat foobar
PythonまたはC ++の同等のものよりもはるかに短い。
cat footer
。
また:C ++対サイコ。
とにかく純粋なPythonに焦点を当てる傾向のあるものをベンチマークにする傾向があるので、それはまだ悪い比較です。より現実的なアプリケーションのパフォーマンス、またはC ++とNumPyのパフォーマンスを比較して、プログラムが著しく遅くなるかどうかを判断することをお勧めします。
これらの統計は、Pythonがはるかに低速であり、それらのベンチマークに対してより多くのメモリを使用していることを示していると思います。正しい方法で読んでいますか?
私の経験では、これは主にPythonでネットワークおよびファイルシステムにバインドされたプログラムを記述することですが、Pythonは重要な点で大幅に遅くなることはありません。この種の作業では、その利点がコストを上回ります。