Problem mit 1000 mal Würfel

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

mutetella hat geschrieben:
cofi hat geschrieben:Aus dem Performance-Blickwinkel ist sie auch suboptimal...
Das scheint mir manchmal schon ein Reflex zu sein: Dies oder das ist mit Listen gelöst, das muss lahm sein...
Nanana, schneid mal nicht den relevanten Teil weg ;)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Ja ok, ich wollte jetzt einfach mal die Gelegenheit nutzen: Ein bischen klugscheißen und mit 'nem Decorator um mich werfen!!!

Wenn wir schon dabei sind:
In diesem Fall fände ich es syntaktisch eigentlich schöner, die zu messende Funktion an die messende Funktion zu übergeben. Ok, ich verstehe schon, dass es den einen oder anderen Fall gibt, wo ein Decorator für mehr Klarheit sorgt. Aber sowas wie 'ne Messroutine... würdet ihr das mit Decorator oder via Übergabe (was ja letztlich dasselbe ist) machen?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ich finde es nicht nur syntaktisch schoener keine Dekoratoren zu nutzen, sondern auch in vielen anderen Aspekten. Will man keine dauerhafte Ueberwachung der Funktion haben, hat man mit dem Dekorator ein Problem ;)

Wenn man die zu messende Funktion uebergibt hat man das Problem nicht. Man kann die Dekorator-Funktion aber auch nicht als Dekorator nutzen und umschifft es auch:

Code: Alles auswählen

measure(func)(10000)
BlackJack

@mutetella: Die konkrete Messung widerlegt aber nicht, dass die Vorgehensweise die Elemente verschieden oft betrachten muss. Der `Counter` geht einmal durch die Daten, die Lösung mit der `count()`-Methode geht sechsmal durch die gleiche Datenmenge. Dass das trotzdem schneller ist, kann man auch als Implementierungsdetail ansehen, weil die Schleife bei `count()` intern in C programmiert ist und bei `Counter` verhältnismässig viel Python-Code für den einen Durchgang abgearbeitet wird. Das kann bei anderen Implementierungen, beispielsweise PyPy oder einem in C implementierten `Counter`, schon wieder anders aussehen. Solange es nicht tatsächlich zu einem messbaren Problem führt, würde ich fast immer den Algorithmus mit weniger „atomaren” Schritten wählen.
lunar

mutetella hat geschrieben:Hoffentlich liest lunar jetzt nicht mit... :roll:
Ich lese mit… und ich frage mich, warum Dich das stört.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@lunar
Nun ja... das Thema Performance war ja in der Vergangenheit hin und wieder schon... keine Ahnung, wie ich jetzt sagen soll... war jedenfalls immer für ein Schmunzeln gut... puh, gerade noch die Kurve bekommen... *grins*
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
lunar

@mutetella So war das nicht gemeint. Ich habe nicht verstanden, dass Du nur auf vergangene Diskussionen anspielst, und dachte, ich wäre Dir mit irgendeinem Beitrag auf die Füße getreten. Sorry :oops:
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@lunar
Nein nein, bist Du überhaupt nicht... mach' Dir keinen Kopf, alles im tiefgrünen Bereich...! :D
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Antworten