なぜPythonは比較的遅いのですか?


13

いくつかのラップトップと比較して、シミュレーションコードのいくつかでPiのベンチマークを行ってきました。私のコードは浮動小数点を集中的に使用する傾向があるため、ハードフロートのサポートのためにRaspbianを使用しています(これははるかに高速であることが判明してます)。いくつかの異なる言語で同じ単純なコードを使用しています。明らかにpythonのコードはCコードどんなプラットフォームIの使用よりも遅いですが、パイの上に、比較的ように見える多くの Pythonインタプリタは、おそらくパイの上に、比較的遅いことがある理由3.周りのんの誰もが知っているの要因により、遅い、とこれは修正される可能性が高いものですか?

テストは次のとおりです。

import random,math

def gibbs(N=50000,thin=1000):
    x=0
    y=0
    print "Iter  x  y"
    for i in range(N):
        for j in range(thin):
            x=random.gammavariate(3,1.0/(y*y+4))
            y=random.gauss(1.0/(x+1),1.0/math.sqrt(2*x+2))
        print i,x,y

gibbs()

実験に関するこのブログ投稿から。


2
(理由の範囲内で)セルフプロモーションは問題ありませんが、質問に実際に追加されたブログリンクはすべてコードであったため、代わりにここに移動しました。
Jivings

2
あの、それはまた、詳細やタイミングやPythonは疑問の点のようなものだったのIntelベースのLinuxマシン上でよりパイ、...上のCに遅く相対的であることを主張立証他の潜在的に有用な背景含まれる
ダレン・ウィルキンソン

2
私は投稿全体を読みましたが、それが質問に信じられないほど関連した情報を提供したとは思いません。そして、あなたの質問に答える前に情報のページを読むように全員に求めることは、あなたに多くの答えを得ることにはなりません。プログラマーは定義上、怠け者です。チャンクを簡単に消化できるすべての情報が必要です:)
Jivings

8
私はやさしい人なので、私は大丈夫です。しかし、このサイトに投稿されたほとんどすべての質問のこの熱心な過剰編集は人々を思いとどまらせる可能性があることを少し心配しています参加から。私はそれが最善の意図で行われたことを知っていますが、地獄への道について彼らが言うことは知っています...非常に活発な質問編集者全員が考えてチャットするのに時間がかかるべきだと本当に思います。いくつかの善意のあるが、見当違いの個人の行動のために、このサイトが離陸しなかった場合、それは本当に残念です。
ダレンウィルキンソン

1
愚かな質問...あなたは方程式の両側で同じバージョンのPythonを実行していましたか?私は同じハードウェアで、python3の範囲はイテレータであり、python2の範囲は効率が低いリストを作成するため、python3はpython2よ​​りも同じコードを高速に実行します(python2ではxrangeを使用します)...例えばstackoverflowを
Foon

回答:


7

Pythonインタープリターは単にARM向けに最適化されていないと思います。Pythonは他のプラットフォーム用に最適化されている場合があります。私の経験では、これはOpenSSHのようなソフトウェアに当てはまるので、Pythonでも同様だと思います。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.