Thread Suche in einem großen file parallelisieren (3 answers)
Opened by amos at 2014-08-14 16:49

Linuxer
 2014-08-16 21:56
#176876 #176876
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Naja,

mein laienhafter Erklärungsversuch (ungetestet und nur ins Grobe gedacht):

Ich denke mir, dass beim simplen Lesen in einen Array dieser Array "dynamisch" befüllt wird; also für jedes neue Element wird der Index erzeugt und die Verwaltungsinformation erstellt und dann noch der Inhalt darein kopiert. Das kostet eben seine Zeit.

Beim Lesen in den Speicher kann, wenn es geschickt gemacht wird, vorab soviel Speicher reserviert werden, wie die Datei dann braucht und das Lesen kann in einem Abwasch erfolgen...

Das Lesen in einen Skalar anstatt einen Array sollte beispielsweise auch schon schneller funktionieren; der Verwaltungsaufwand dafür dürfte geringer sein als für einen Array.

Edit:
Kurzer Test/Vergleich zwischen Array und Skalar:
Code: (dl )
1
2
3
            s/iter  read2array read2scalar
read2array 2.91 -- -76%
read2scalar 0.711 309% --

Last edited: 2014-08-16 21:57:22 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Suche in einem großen file parallelisieren