Speicheraufwands
Speicheraufwand bezeichnet in der Informatik den erforderlichen Arbeitsspeicher, der nötig ist, um eine Aufgabe zu erfüllen, wobei der Begriff häufig auf Algorithmen, Datenstrukturen oder Programme angewendet wird. Er umfasst den belegten RAM während der Ausführung sowie die Nutzung von Speicher im Heap, Stack, Cache und virtuellem Speicher, soweit er zur Laufzeit der Aufgabe zugeordnet wird. Der Speicheraufwand wird oft als Speicherauslastung oder Speicherkomplexität beschrieben und kann theoretisch als Funktion f(n) der Eingabegröße n angegeben werden; in der Praxis spielen auch Overheads eine Rolle.
Wichtige Unterscheidungen betreffen den theoretischen und den praktischen Speicheraufwand. Der theoretische Speicheraufwand bezieht sich auf die
Faktoren beeinflussen den Speicheraufwand: Datentypen (Größenordnung von Bits und Bytes), Datenstrukturen (Array, verkettete Liste, Baum), Implementierung,
Beispiele: Ein In-Place-Sortierverfahren kann Speicheraufwand O(1) zusätzlich zur Eingabe benötigen, während nicht in-place Sortieralgorithmen zusätzlichen Speicherbedarf
Optimierung: Speicherreduktion durch in-place Algorithmen, Streaming-Verarbeitung, Datenkompression, speicherbewusste Datenstrukturen (z. B. Bitfelder), Speicherpools und Feinanpassungen der
Bedeutung: In eingebetteten Systemen oder ressourcenbegrenzten Umgebungen ist der Speicheraufwand entscheidend; Designentscheidungen müssen oft Zeit- und