linux-l: perl und schnelle Suche

Steffen Dettmer steffen at dett.de
Mo Jun 18 12:26:25 CEST 2001


* Oliver Bandel wrote on Sun, Jun 17, 2001 at 21:57 +0200:
> On Sun, 17 Jun 2001, Steffen Dettmer wrote:
> [...]
> > 2. Index aufbauen
> [...]
> 
> Mag sein, daß ich die Fragestellung nicht korrekt aufgefasst

Ja, ich glaube auch, daß die nicht so klar 'rüberkam.

> hatte, aber wozu willst du einen Index aufbauen?

Na ja, einmal lesen, oft fragen. So hörte sich das für mich an...
"grep" (einmal lesen, einmal frage) kannte er ja schon :)

> Wozu oder was willst du denn im Hash ablegen?

Einen Index eben :) Das Aufbauen dauert zwar einen Moment, aber
dann ist's schnell. 

> String in der Datei vorhanden => Dann kann man
> sich die jeweilige Zeile ausgeben, wie es halt
> mit grep sonst auch gemacht wird.

Fragt sich eben, was man will. Hab das ja geschrieben. Wollte
unbedingt mal schreiben, wie einfach es ist, effektive Indizies
mit Perl zu bauen. Das ist nämlich wirklich verdammt schnell :)

> Und warum, wenn es zwischengespeichert werden soll,
> nicht einfach in ein Array ablegen?
> Ist schneller als ein hash.

Nein. Wenn Du ein Array mit 10.000 Elementen nach etwas
durchsuchst (dessen numerischen Index Du nicht kennst), brauchst
Du durchschnittlich 5000 Array Zugriffe. Wenn Du ein Hash
durchsuchst, kennst Du dessen assoziativen Index, und brauchst
einen Zugriff (plus ganz wenige, falls der Hash auf eine Liste
zeigt oder so, wie im letzten Beispiel). OK, der eine Zugriff
besteht Perl-Intern aus vielleicht durchschnittlich drei, aber
immernoch viel viel besser als 5.000 :)

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l