Also ich habe mehrere Funktionen ausgeführt, jede Funktion nimmt einen Abschnitt aus der Million Zeile TXT-Datei. Jede Funktion hat eine for-Schleife, die durch jede Zeile in diesem Abschnitt der Million-Zeile-Datei läuft.Verbessern Sie die Geschwindigkeit beim Lesen sehr großer Dateien in Python
Es braucht Informationen aus diesen Zeilen, um zu sehen, ob es Informationen in 2 anderen Dateien entspricht, eine etwa 50.000-100.000 Zeilen lang, die andere etwa 500-1000 Zeilen lang. Ich überprüfte, ob die Zeilen übereinstimmen, indem Sie für Schleifen durch die anderen 2 Dateien laufen. Sobald die Informationen übereinstimmen, schreibe ich die Ausgabe in eine neue Datei, alle Funktionen schreiben in dieselbe Datei. Das Programm wird etwa 2.500 Zeilen pro Minute produzieren, wird aber langsamer, je länger es läuft. Wenn ich eine der Funktionen ausführe, geschieht dies in ungefähr 500 Minuten, aber wenn ich es mit 23 anderen Prozessen mache, macht es nur 2500 pro Minute, warum ist das so?
Weiß jemand, warum das passieren würde? Wie auch immer, ich könnte etwas importieren, um das Programm schneller laufen zu lassen, ich benutze bereits die Methode with "as file1:"
.
Können die Multiprozesse schneller ausgeführt werden?
mehr Thread! = Schneller. Es hängt davon ab, wie viele Kerne Sie haben – Whitefret
, wenn alle Ihre Daten in den Speicher passen können, könnten Sie versuchen, Ihre Daten mit Pandas Modul zu verarbeiten - es ist sehr schnell und sehr effizient. Vergessen Sie nicht das langsamste Teil - Disk-IO-System, es wird wahrscheinlich Ihr Engpass sein, nicht die Anzahl Ihrer Threads – MaxU
1. Wie viele Kerne haben Sie? 2. Welchen Bruchteil der Gesamt-CPU verwendet dieser Prozess (wenn er nahe bei 100% liegt, dann werden mehr Kerne nicht helfen). 3. Wie kommen die Threads zum Anfang von "ihrer" Sektion? Wenn sie zuerst * n * Zeilen lesen müssen, bin ich überrascht, dass dies die Dinge nicht verlangsamt. –