Python und andere Skriptsprachen werden oft aufgegeben, weil sie im Vergleich zu kompilierten Sprachen wie C ineffizient sind. Zum Beispiel das folgende Beispiel für Fibonacci-Zahlen:
In C-Sprache:
int fib(int n){ if (n < 2) return n; else return fib(n - 1) + fib(n - 2); } int main() { fib(40); return 0;
In Python:
def fib(n): if n < 2: return n else: return fib(n - 1) + fib(n - 2) fib(40)
Die folgenden sind ihre jeweiligen Ausführungszeiten:
$ time ./fib 3.099s $ time python fib.py 16.655s
Wie erwartet ist die Ausführungseffizienz der C-Sprache in diesem Beispiel fünfmal schneller als die von Python.
Im Fall von Web Scraping ist die Ausführungsgeschwindigkeit nicht sehr wichtig, da der Engpass im I/O liegt – dem Herunterladen der Webseite. Ich möchte Python aber auch in anderen Umgebungen verwenden. Schauen wir uns also an, wie ich die Ausführungsgeschwindigkeit von Python verbessern kann.
Zuerst installieren wir ein Python-Modul: psyco. Die Installation ist sehr einfach:
sudo apt-get install python-psyco
Oder if Du bist auf Centos, führe Folgendes aus:
sudo yum install python-psyco
Dann lass uns überprüfen:
#引入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)
Haha, erlebe den Moment des Wunders! !
$ time python fib.py 3.190s
Es dauerte nur 3 Sekunden. Nach Verwendung des Psyco-Moduls läuft Python so schnell wie C!
Jetzt füge ich den folgenden Code zu fast den meisten meines Python-Codes hinzu, um die Geschwindigkeitsverbesserung durch Psyco zu genießen
try: import psyco psyco.full() except ImportError: pass # psyco not installed so continue as usual