Experiment zum Vergleich der Schreibgeschwindigkeit von Dateien zwischen Python 2.7.9 und Pypy 2.5.0

Ich verwende Python für meine Forschung, aber wenn die Daten in GB-Einheiten angegeben sind, ist die Berechnung nicht einfach abzuschließen. Verwenden Sie also etwas namens pypy mit einem JIT-Compiler Ich dachte, ich würde es schnell beenden! !! Als ich den Code auf die gleiche Weise schrieb, war der Berechnungsteil sicherlich sehr schnell, aber Ich denke nicht, dass es zu schnell ist, Dateien mit dem CSV-Modul zu schreiben ... Als ich mich fragte warum, sagte die Pypy-Seite so etwas

Missing RPython modules: A few modules of the standard library (like csv and cPickle) are written in C in CPython, but written natively in pure Python in PyPy. Sometimes the JIT is able to do a good job on them, and sometimes not. In most cases (like csv and cPickle), we're slower than CPython, with the notable exception of json and heapq.

http://pypy.org/performance.html

Sind Sie im Ernst. Ich habe Python an Ort und Stelle verwendet, aber mit Python ist es immer noch langsam ...

Ich habe mich gefragt, wie langsam Pypy ist, was vom Beamten als langsam bezeichnet wird, und diesmal versucht.

Dies ist das

test.py


#coding:utf-8

import csv
import time



start = time.clock()
test_sentence = ["which","is","faster","Python","or","Pypy","?"]
iter_list = [100,1000,10000,100000,1000000,2000000,5000000,10000000]
time_list = []

with open("fast_writing.csv","wb")as f:
    writer = csv.writer(f)
    for i in iter_list:
        loop_start = time.clock()
        for j in xrange(i):
            writer.writerow(test_sentence)
        end_time = time.clock() -loop_start
        time_list.append(end_time)

end_loop = time.clock() - start
time_list.append(end_loop)
print "Die Zeit, die es dauerte{0}".format(end_loop)

with open("pythonresult.csv","wb")as f:
    writer= csv.writer(f)
    writer.writerow(time_list)

スクリーンショット 2015-02-20 1.03.12.png

Mit zunehmender Häufigkeit wird Pypy immer schneller. Sicherlich scheint Python schneller zu sein, wenn man ungefähr 10.000 Mal schreibt

Kommt es auf die Bedingungen an? In einem so salzigen Experiment sieht man den Effekt nicht wirklich.

Mit zunehmender Anzahl von Schreibvorgängen ist Pypy jedoch schneller. Pypy scheint bei der Verarbeitung großer Matrizen besser zu funktionieren. Es scheint, dass Pypy auch Numpy hat. Wenn es sich also um eine Matrixverarbeitung handelt, ist es besser, Pypy für die Hochgeschwindigkeitsverarbeitung zu verwenden. Bei der Verwendung von Pypy sind jedoch einige Punkte zu beachten. Wenn dies vernachlässigt wird, ist die Verarbeitungszeit unnötig lang. Seien Sie also vorsichtig.

Recommended Posts

Experiment zum Vergleich der Schreibgeschwindigkeit von Dateien zwischen Python 2.7.9 und Pypy 2.5.0
Geschwindigkeitsvergleich zwischen CPython und PyPy
Funktion zum Öffnen einer Datei in Python3 (Unterschied zwischen open und codecs.open und Geschwindigkeitsvergleich)
Schreiben Sie die O_SYNC-Datei in C und Python
Neue Datei erstellen [Vergleich zwischen Bash und PowerShell]
Geschwindigkeitsvergleich zwischen inkrementierender Zählvariable und Aufzählung
[Ruby vs Python] Benchmark-Vergleich zwischen Rails und Flask
[Ubuntu] [Python] Vergleich der Gesichtserkennung zwischen dlib und OpenCV
Datum / Uhrzeit und Schreiben und Sichern von Dateien
CSV-Datei lesen und schreiben
Dateien lesen und schreiben
Dateien schreiben und lesen
Python 3 Sortier- und Vergleichsfunktionen
[Python] So legen Sie Variablennamen dynamisch fest und vergleichen die Geschwindigkeit
AtCoder ABC151 Problem D Geschwindigkeitsvergleich in C ++ / Python / PyPy
Unterschied zwischen Ruby und Python Split
Unterschied zwischen Java und Python (Memo)
Unterschied zwischen list () und [] in Python
Geschwindigkeitsvergleich der Volltextverarbeitung von Wiktionary mit F # und Python
Unterschied zwischen == und ist in Python
[Python] Mit Python in eine CSV-Datei schreiben
Zusammenarbeit zwischen Python-Modul und API
Unterschied zwischen Python, Stftime und Strptime
Unterschied zwischen der Python2-Serie und der Python3-Serie dict.keys ()
Lesen und Schreiben von Python CSV-Dateien
Python-Memo ① Ordner- und Dateivorgänge
Vergleich der Konvertierungsmodule für ausführbare Python-Dateien 2
Geschwindigkeitsvergleich der Python-XML-Perspektive
[Python] Unterschied zwischen Funktion und Methode
Zusammenfassung der Unterschiede zwischen Python und PHP (Vergleichstabelle der Hauptelemente)
Python - Unterschied zwischen exec und eval
[Python] Unterschied zwischen randrange () und randint ()
[Python] Unterschied zwischen sortiert und sortiert (Colaboratory)
Schreiben Sie eine C-Sprach-Linkliste in einem objektorientierten Stil (mit Codevergleich zwischen Python und Java).
Kommunizieren Sie mit gRPC zwischen Elixir und Python
Unterschied in der Authentizität zwischen Python und JavaScript
Unterschiede zwischen Ruby und Python im Umfang
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Unterschiede zwischen Python- und Java-Syntax
Unterschiede in der Beziehung zwischen PHP und Python schließlich und beenden
Unterschied zwischen @classmethod und @staticmethod in Python
Kopieren Sie die Datei und schreiben Sie den Zellenwert @python neu
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
[Python] Unterschied zwischen Klassenmethode und statischer Methode
Exklusiver Dateizugriff zwischen Prozessen in Python
Unterschied zwischen Docker-Compose-Datei env_file und .env-Datei
Lesen und schreiben Sie JSON-Dateien mit Python
Siehe Datei- und Ordnerinformationen zu Python
[Python3] Wechseln Sie zwischen Shift_JIS, UTF-8 und ASCII
[Python Iroha] Unterschied zwischen Liste und Tupel
[Python] Unterschied zwischen Rand- und Randn-Ausgabe
Geschwindigkeitsunterschied zwischen wsgi, Flasche und Flasche
Komprimieren Sie Python-Daten und schreiben Sie in SQLite
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Unterschied zwischen Ruby und Python (grundlegende Syntax)
[Python] Lesen Sie die HTML-Datei und üben Sie das Scraping
Korrespondenz zwischen den in Python integrierten Funktionen und Rust
Geschwindigkeitsvergleich von murmurhash3, md5 und sha1
Kommunikation verschlüsselter Daten zwischen Python und C #