Thread Frage zur richtigen Speicherverwendung (14 answers)
Opened by bianca at 2010-01-24 14:32

murphy
 2010-01-24 14:52
#131128 #131128
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
In der Subroutine test wird in Zeile 20 eine Kopie des übergebenen Hashes erzeugt. Anschließend wird in Zeile 16 der alte Hash wiederum destruktiv durch die Kopie ersetzt. Der gesamte Hash wird also in jedem Schleifendurchlauf zweimal neu aufgebaut und zeitweise doppelt im Speicher gehalten. Man könnte etwas Speicher und Zeit sparen, wenn man stattdessen direkt auf die übergebene Referenz zugreifen würde. Ersatz für sub test ab Zeile 19:
Code (perl): (dl )
1
2
3
4
sub test {
  my ($hr, $nr) = @_;
  $hr->{"foo$nr"} = "test$nr";
}

Ersatz für Zeile 16:
Code (perl): (dl )
&test(\%hash, $nr);


(edit: Codebeispiel korrigiert)
Last edited: 2010-01-25 11:42:01 +0100 (CET)
When C++ is your hammer, every problem looks like your thumb.

View full thread Frage zur richtigen Speicherverwendung