Schleifendauer Python



  • Ich hab jetzt ein paar Mal diesen Code hier ausgeführt. Und jedes Mal hat die Schleife unterschiedlich lang gedauert. Das beste war 0.4 Sekunden und das schlechteste war 10 Sekunden !!!! Wie gibt es das. Und was ich gar nicht versteh am Ende war mein Arbeitsspeicher voll!! Scheinbar wird i nicht gelöscht?? Hoffe auf gute Erklärung 🙂

    print "Started"
    for i in range(1000000): 
    	if i == 999999:
    		print "finished"
    


  • Kann ich nicht reproduzieren. Versuch es doch nüchtern noch
    einmal.



  • Hmm ich hab jetzt mein Sublime mal komplett geschlossen und den Code nochmal ausgeführt und ja jetzt dauerts immer 0.2 Sekunden. Keine Ahnung was da los war.



  • Wie ist das eigentlich bei Python werden da die libraries auch noch interpretiert ? Wenn ich da nee grosse Library habe dann dauert das ja ultra lang. Bei C++ da sind ja die .lib und .dll schon vorkompiliert. Wie würde eigentlich eine leerlaufende Schleife in Python ausschauen ?



  • Bei Python wird alles interpretiert was nicht als C-Modul implementiert ist.
    Dauert in der Regel aber auch nicht lange wenn es nicht rechenintensiv ist.

    Leere Schleife:

    for i in range(1000000):
        pass
    


  • Interpretieren heisst doch dass immer dieser Interpreter ausgeführt werden muss wenn ich das Programm starte. Bei C dagegen führ ich die exe aus und das programm kann ausgeführt werden. Ich mein kein Wunder dass dann interpretierte Sprachen super langsam sind ....



  • 1. Wo siehst du den fundamentalen Unterschied ob blurry.exe oder Interpreter.exe gestartet wird?
    2. Wie kommst du darauf dass Python den Anspruch erhebt eine High Performance Sprache zu sein?



  • bei c++ mache ich meinExecutable.exe und bei python muss ich python myExecutable.py machen. Nicht umsonst sagt man dass Python 100 mal langsamer als C++ ist. Wenn man davon absieht dass Variablen in Pyton dynamisch und nicht statisch sind dann waere es immer noch 25 mal langsamer.



  • Faktor 100 ist nichts. Das haut man außer bei Mini-Programmen ganz leicht raus durch mehr Übersicht. Also nimm erstmal die Sprache, die dir besser liegt, und verwende angemessenere Algorithmen und Datenstrukturen.
    Erst wenn sich fast gleich gute Zauberer im Duell gegenüberstehen entscheidet der Zauberstab (solange nicht einer schon ab Werk total japutt ist).


Anmelden zum Antworten