Thread Array ist nicht Array?!?: Was ist eigentlich ein Array in Perl?
(23 answers)
Opened by highlander at 2006-04-07 17:02
[quote=sid burn,09.04.2006, 20:07]Anscheind hat man ein Array, dass die unterschiedlichen Speicherstellen der unterschiedlichen Elemente enthält. Greift man auf Element 500 wird auf eine Speicherstelle verwiesen die auf einer Struktur zeigt, wo sich der Inhalt befindet.
Letztendlich wird beim vergößern des Arrays dann nur die tabelle mit den Speicherorten neu angelegt, und umkopiert. Aber nicht die Inhalte des Arrays. [/quote] Exakt. Intern ist ein AV (Array Value) eine Datenstruktur, die hauptsächlich ein Array enthält, das auf SV (Scalar Value, die eigentlichen Werte) verweist. Beim Umkopieren des Arrays im AV müssen deshalb die eigentlichen Werte nicht angefasst werden. Quote So ist es. Wenn es denn wirklich performance-kritisch wird, kann man noch immer auf XS/Inline::C zugreifen oder Arrays anderweitig emulieren. |