Seite 1 von 1
Selber schreiben oder Library laden?
Verfasst: Donnerstag 4. Februar 2010, 11:32
von mutetella
Hallo,
mein Progrämmchen braucht von Tag zu Tag neue Funktionen... Nachdem es ja für Python viele Module für allerlei Zwecke bereits fertig gibt, stellt sich mir vor dem Hintergrund der Geschwindigkeit eines Programmes die Frage, ob man mit 'import ...' eher sparsam umgehen sollte bzw. ab wann (ab wievielen imports) die Performance leidet?
Dabei geht es mir nicht nur um die Geschwindigkeit des Programmstarts, sondern auch darum, ob geladene Module während der Programmausführung Nachteile haben.
Bin mal gespannt, was es dazu für Meinungen gibt.
Gruß
mutetella
Verfasst: Donnerstag 4. Februar 2010, 11:42
von cofi
Nein das wirkt sich nur dann aus, wenn du importierst, ergo nur beim Programmstart.
Was der Unterschied sein soll, wenn du selbstgeschriebene oder fremde Libs importierst, erschliesst sich mir aber nicht wirklich ...
Verfasst: Donnerstag 4. Februar 2010, 11:56
von mutetella
Was der Unterschied sein soll, wenn du selbstgeschriebene oder fremde Libs importierst, erschliesst sich mir aber nicht wirklich ...
Konkret geht es mir darum: Ich brauche für mein Programm 3 Funktionen, die mir Datumsberechnungen durchführen. Das Python Modul 'calendar' bietet eigentich genau, was ich brauche, benötigt selbst aber wiederum für die meisten Funktionen noch zusätzlich das 'datetime'-Modul.
Jetzt stellte sich mir halt die Frage, ob es irgendwie einen Nachteil haben könnte, wenn ich wegen momentan nur 3 Funktionen das komplette 'calendar'-Modul importiere ('datetime' brauche ich in jedem Fall, auch wenn ich die 3 Funktionen selbst schreibe).
Verfasst: Donnerstag 4. Februar 2010, 12:08
von EyDu
Hallo.
Bist du überhaupt mal in einen Bereich geraten, in dem die Performance nicht mehr ausgereicht hat? Wenn man nicht von vorne herein weiß, dass man diese Probleme bekommen wird, dann macht man sich darüber erst Gedanken, wenn man so weit ist.
Verfasst: Donnerstag 4. Februar 2010, 12:18
von mutetella
Bist du überhaupt mal in einen Bereich geraten, in dem die Performance nicht mehr ausgereicht hat?
Ja, jeden morgen! Tag für Tag!
Du hast ja Recht, ich neige dazu, mir zu viele "wäre-es-nicht-besser-wenn"-Gedanken zu machen. Kommt natürlich auch daher, dass ich so viele Zusammenhänge in Python bzw. beim Schreiben eines Programms noch nicht kenne.
Gruß
mutetella
Verfasst: Donnerstag 4. Februar 2010, 12:50
von Defnull
Code: Alles auswählen
>>> def test():
... t1 = time.time()
... import calendar
... t2 = time.time()
... return t2-t1
...
>>> import time
>>> test()
0.088544130325317383
>>> test()
1.7881393432617188e-05
Imports kosten nur ein einziges mal Zeit, und selbst das ist vernachlässigbar. Dafür bekommst du funktionierende, geprüfte, getestete und robuste Bibliotheken und sparst dir Stunden an Entwicklungszeit und Fehlersuche.
Verfasst: Donnerstag 4. Februar 2010, 13:44
von mutetella
@Defnull:
Danke, genau das wollte ich hören...
