[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