Thread Speicheroptimierung bei Hash/Array
(9 answers)
Opened by tschulz at 2008-07-18 23:32
Hallo
tschulz+2008-07-18 21:32:47-- 4 Ideen: 1. ein großes Hash wird weniger Platz allokieren und verschwenden, wenn du einen Trenner nimmst der definitiv nicht vorkommt, könntest du schreiben: $hashref->{name1-#idx-abc} IMHO gibts noch so ein altes Perl4 Konstrukt für multidiminsionales Strukturen mit ';' als Trenner !?! also $hashref->{name1;#idx;abc} 2. Es gibt IMHO noch so eine zwischenform von Hashes und Arrays, [s]named Arrays oder so[/s] pseudo-hash, wo jedem Index ein Key zugeordnet werden kann, gerade um Platz zu sparen. Das war aber experimental. (EDIT: siehe auch Class::PseudoHash) 3. obiges selbstbasteln: zum einen kannst du dir mit Hashties Strukturen bauen die oberflächlich wie Hashes aussehen, inwendig aber viel kompakter sind. z.B. Tie::Hash::Array 4. Zum anderen, wenn sich die key auf der unetren ebene (abc,def, ...) prinzipiell immer wiederholen, dann leg ein Hash an das pro Key ein eindeutigen Lookup-Index zuweist sodass du nur ein Array brauchst. Hoffe davon hilft was, habe gerade kein perl zum Testen zur Verfügung Grüße Rolf EDIT: Grundsätzlich ist Swapen kein problem solange es möglichst selten vorkommt, d.h. Daten und Ablauf so gestalten dass man möglichst lange imgleichen Speicherbereich bleibt. me and my writeups
|