Thread Unicode::Collate -> sehr langsam? (26 answers)
Opened by bianca at 2014-12-27 18:42

GUIfreund
 2015-01-06 13:52
#179083 #179083
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
2015-01-05T18:06:44 bianca
Hmm, aber was ist denn das Neue an Deinem Vorschlag?

Neu ist die andere Herangehensweise: Statt eines Sorts mit komplexem Vergleichskode mehrere Sorts mit einfachem Vergleichskode.
2015-01-04T14:15:53 GUIfreund
Das dürfte unter'm Strich einen deutlichen Geschwindigkeitsgewinn bringen.

Darum ging es dir doch in deinem OP (siehe Titel des Threads).

2015-01-05T18:06:44 bianca
Ich hab ein mehrspaltiges Hash und in zwei Arrays hab ich einmal die Art (nummerisch oder alpha) und im anderen die Reihenfolge (1 = aufwärts und 0 = abwärts) für jede einzelne Spalte.

Wie setze ich denn damit deinen Vorschlag um?

Jede Spalte hat ja ihren eigenen Sort. Für numerische Spalten nimmst du den numerischen Vergleichsoperator <=>, und für abwärts vertauschst du $a und $b (gleich beim Kodieren - bitte kein if). Alles wie gehabt.

Übrigens kann es durchaus passieren, dass sich der Geschwindigkeitsgewinn am Ende als gar nicht so berauschend herausstellt. Schließlich benutzt du nach wie vor die Methode $uniccol->cmp. Da könntest du nur auf den Ehrgeiz des Autors hoffen, daran noch zu feilen.
Gruß
GUIfreund

View full thread Unicode::Collate -> sehr langsam?