[Vienna-pm] Garbage-Collection
Carl A. Schreiber
gooly at gmx.at
Thu Aug 11 01:54:59 PDT 2005
Peter,
aus meinem kleinen Erfahrungsschatzkästchen..
>
> Interessanterweise ist ein "manuelles" Abbauen des Hashes mittels delete
> der einzelnen Elemente schneller ist als sich auf die Garbage-Collection
> beim exit zu verlassen.
>
Ich hatte mal ein immer langsamer werdendes script, dass einen immer größer
werdendes array aufbaute. Das konnte ich ziemlich bescheunigen, in dem ich an
Stelle eines arrays (push bzw neues hash element) alles an einen string
klebte und am Ende (dazwischen brauchte ich die Dinge nicht) mit split wieder
in ein array splittete. Ich kann mir vorstellen, das diese Art auch
speichersparsamer ist! Nimm halt geeignete delimiter zB $delim = "\021" ist
der vertical Delimiter, der wird praktisch nie verwendet!
Das ständige Umkopieren eines immer größer werdenden array kostete ziemlich
viel Zeit in Perl!
Ein Array (== Hash) wird in Perl ja mit eine best. Größe angelegt und wenn die
Größe überschritten wird es in einen gößeren (doppelt?) umkopiert.
Mit delete kannst Du nun wahrscheinlich genau diese wiederholten
'Schwellenüberschreitungen' hoch, runter,hoch, runter, .. vermeiden, desshalb
ist's wahrscheinlich schneller.
hih (hope it helps)
Calli
More information about the Vienna-pm
mailing list