Frage zu einer Ausgabe von dis.dis.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 10. Januar 2007, 16:34

Das andere für den vergleich (``text``) würde ich erstmal so lassen. Da fällt mir auch nichts besseres ein. ``out += scr`` würde ich aber anders machen. Und zwar ``out`` als Liste definieren und dann ``out.append(src)`` in zeile 18 schreiben. An der richtige stelle wo dann ``out`` übergeben werden soll, würde ich dann sowas machen:

Code: Alles auswählen

def f(str_):
    # irgendwas machen
    pass

while 1:
    ...
    if .... == ....:
        f("".join(out)) # So dann `out` als ``str`` übergeben
Das dürfte schneller sein (und vielleicht Speicherschonender?).

lg
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Mittwoch 10. Januar 2007, 16:42

sape: Oh, dass du doch *viele* Strings zusammenfügst, war mir nicht ganz klar.

Was mir noch auffällt: Warum definierst du nicht einmalig eine Liste der großen Strings und übergibst diese dann als Argument an deine Testfunktionen? Die sollen ja schließlich nur zusammenfügen und nicht immer neu den Variablen Werte zuweisen. Entsprechend sollte die Laufzeitauswertung etwas genauer werden.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 10. Januar 2007, 16:56

Y0Gi, gute Idee. Werde ich morgen mal machen. Aber soviel wird das nichts ändern eher die Laufzeit verringern, da die Objekte nicht jedesmal erzeugt werden müssen. Aber der vergleich von ``f1`` und ``f2`` wird gleich ausfallen. Oder gibt es bei der Erzeugung von Objekten immer irgendwelche Geschwindigkeitsschwankungen, von denen ich noch nichts weiß?
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 10. Januar 2007, 16:58

sape hat geschrieben:Oder gibt es bei der Erzeugung von Objekten immer irgendwelche Geschwindigkeitsschwankungen, von denen ich noch nichts weiß?
Ach mist, der "GC" *gruml*. Ist ja eher dynamisch. Ich weiß nie wann der anfängt aufzuräumen ^^ Das könnte das Ergebnis dann doch beeinflussen wenn er unterschiedlich einsetzt bzw. die Arbeitszeit unterschiedlich lang ist.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 10. Januar 2007, 17:58

sape hat geschrieben:Ach mist, der "GC" *gruml*.
Ausmachen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Mittwoch 10. Januar 2007, 18:14

Hallo, sape!
Das wird wahrscheinlich kaum eine Beschleunigung bringen, da out += scr nur sehr selten aufgerufen wird. Wirksamer wäre eine Optimierung von text = text + c, da ja 1000x mehr Zeichen als Bildschirmseiten übertragen werden.
Trotzdem Danke
HWK
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 10. Januar 2007, 18:22

Leonidas hat geschrieben:
sape hat geschrieben:Ach mist, der "GC" *gruml*.
Ausmachen.
Vielen danke Leo :) Muss gestehen das ich mir noch nicht alle Beschreibungen zu den mitgelieferten Modulen durchgelesen habe. Sind einfach zuviel Module bei Python ^^

EDIT: Gleich mal 10.000 Objekte erzeugen (:twisted:) und dann mal mit und ohne GC den Benchmark starten :D
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Mittwoch 10. Januar 2007, 18:27

HWK hat geschrieben:Wirksamer wäre eine Optimierung von text = text + c, da ja 1000x mehr Zeichen als Bildschirmseiten übertragen werden.
Puh, hmm, so auf Anhieb weiß ich auch nicht wie man das machen soll. Ich schaue mir das mal später an, da mich das nun auch interessiert.

lg
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Donnerstag 11. Januar 2007, 16:04

Antworten