2016-04-04 9 views
0

Zum Beispiel, wenn ich vermeiden kann, re.py für einen String Ersetzungsvorgang zu verwenden, führt das Laden des 13k (+/-) Moduls nicht zu einer signifikant verbesserten Skriptleistung?Welche Auswirkungen haben Speicher und Leistung auf das Importieren eines bestimmten Moduls aus der Python-Standardbibliothek?

+0

Haben Sie ein bestimmtes Modul im Kopf oder fragen Sie es im Allgemeinen? Haben Sie Speicherbeschränkungen? Die meisten Module nehmen keine merkliche Menge an Speicher auf und werden nur einmal und ziemlich schnell importiert. Ehrlich gesagt, würde ich mir mehr Gedanken über die Leistung meines Algorithmus machen, als ein Modul zu importieren. – Reti43

+0

unwahrscheinlich; Ich wette, Sie würden mehr Verbesserungen mit besseren Algorithmen sehen. Sie könnten vielleicht eine kostenlose Performance mit [pypy] (http://pypy.org/) bekommen - der [JIT-Compiler] (https://en.wikipedia.org/wiki/Just-in-time_compilation) nimmt ein paar, um "aufzuwärmen", aber sobald es geht, ist es wirklich schnell. – willnx

+0

@ Reti43 Ja, ich bezog mich auf das Modul 're', dessen Quelle ungefähr 13k ist. Keine Speicherbeschränkungen, aber es macht mich krank, daran zu denken, ein 13k-Modul in den Speicher zu laden, wenn ich es durch ein halbes Dutzend Zeilen Code ersetzen kann. – Stephen

Antwort

0

Der Leistungseffekt ist minimal. Auf meinem middle-of-the-Road-PC, lief ich den folgenden Befehl ein:

$ time python -mre 

real 0m0.021s 
user 0m0.017s 
sys 0m0.005s 

Da der gesamte Prozess des Ladens Python, den Python-Interpreter ausgeführt wird, und Import re nur 0,02 s hat, die Kosten für Importieren re ist deutlich kleiner als .02s.

EDIT:

Weitere Tests mit time python -c 'exit()' zeigt an, dass nichts zu tun, die gleiche Menge an Zeit wie import re nimmt. Um es anders auszudrücken, die Kosten von import re sind nicht messbar.

+0

Das ist unglaublich. Ich denke, meine Sorge ist nicht praktisch, sondern eher eine Frage des Prinzips. – Stephen

Verwandte Themen