Wird Garbage Collection in Programmiersprachen zum Sammeln von Heap-Speicher oder sonst etwas verwendet?

Wird Garbage Collection in Programmiersprachen zum Sammeln von Heap-Speicher oder sonst etwas verwendet?

Die Garbage Collection zum Recycling nicht mehr verwendeter Objekte dient der Freigabe des Heap-Speichers. Bedeutet ein Speicherleck, dass nicht genügend Heap-Speicherplatz für die Ausführung des Programms vorhanden ist? Was wir also normalerweise als „nicht genügend Arbeitsspeicher“ bezeichnen, bezieht sich auf „nicht genügend Laufzeitspeicher“, also „Heap-Speicher“?

Antwort1

Garbage Collection bezieht sich in der Regel tatsächlich auf den Heap-Speicher.

Beachten Sie, dass Speicherlecks und Speicherfehler nicht gleichbedeutend sind. Ein Speicherleck ist eine Situation, in der ein Teil des zugewiesenen Speichers (z. B. ein Objekt in einer OO-Sprache) nicht mehr benötigt wird, aber aus irgendeinem Grund nicht freigegeben/gesammelt werden kann (z. B. hat der Programmierer vergessen, einen Verweis darauf zu löschen).
Es kann ein Speicherleck geben, das keinen Speicherfehler verursacht (wenn das Leck ausreichend klein ist), und Sie können einen solchen Fehler erhalten, ohne dass ein Speicherleck auftritt (wenn Sie berechtigterweise versuchen, mehr Speicher zuzuweisen, als dem Prozess zur Verfügung steht).

verwandte Informationen