Also, ich habe dieses tolle Programm, das sehr nützlich ist:
static void Main(string[] args)
{
new Dictionary<int,int>(10000000);
while (true)
{
System.Threading.Thread.Sleep(1000);
}
}
Der Compiler gibt dabei nicht einmal eine Warnung aus, was überraschend ist.
Durch die Ausführung dieses Vorgangs wird ein Teil des Speichers zugewiesen. Wenn ich mehrere Kopien ausführe, komme ich irgendwann an einen Punkt, an dem ich nicht mehr starten kann, weil mir der Speicher ausgegangen ist.
- Warum räumt der Garbage Collector nie den Speicher auf, sondern lässt das System in einen Zustand geraten, in dem nicht mehr genug Speicher für neue Prozesse vorhanden ist?
- Verdammt, warum ist die Speicherzuweisung nicht optimiert? Sie kann niemals von irgendetwas referenziert werden!
Was ist hier also los?