ホームページ >バックエンド開発 >Python チュートリアル >Pythonを高速化するにはどうすればよいですか?

Pythonを高速化するにはどうすればよいですか?

高洛峰
高洛峰オリジナル
2016-10-18 14:36:201406ブラウズ

Python やその他のスクリプト言語は、C などのコンパイル言語と比較して非効率であるため、放棄されることがよくあります。たとえば、次のフィボナッチ数の例:

C 言語の場合:

int fib(int n){
   if (n < 2)
     return n;
   else
     return fib(n - 1) + fib(n - 2);
}
int main() {
    fib(40);
    return 0;

Python の場合:

def fib(n):
  if n < 2:
     return n
  else:
     return fib(n - 1) + fib(n - 2)
fib(40)

それぞれの実行時間は次のとおりです:

$ time ./fib
3.099s
  
$ time python fib.py
16.655s

予想どおり、この例の C 言語の実行効率は 5 倍ですPythonよりも速いです。


Web スクレイピングの場合、ボトルネックは Web ページのダウンロードである I/O であるため、実行速度はそれほど重要ではありません。しかし、他の環境でもPythonを使いたいので、Pythonの実行速度を向上させる方法を見てみましょう。


まず、Python モジュール psyco をインストールします。インストールは非常に簡単です。次のコマンドを実行するだけです:

sudo apt-get install python-psyco

または、centos を使用している場合は、次のコマンドを実行します:

sudo yum install python-psyco

笑、奇跡の瞬間を目撃してください! !

#引入psyco模块,author: www.pythontab.com
import psyco
psyco.full()
def fib(n):
  if n < 2:
     return n
  else:
     return fib(n - 1) + fib(n - 2)
fib(40)

psyco モジュールを使用すると、Python は C と同じくらい速く動作します。


今、私は psyco

$ time python fib.py
3.190s

によってもたらされる速度向上を楽しむために、ほとんどの Python コードに次のコードを追加します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。