Speicherleck
Ein Speicherleck ist eine Art von Programmierfehler, durch den ein Programm langsam Speicher des Systems verbraucht, bis keiner mehr übrig ist. Ein Speicherleck tritt langsam auf, sodass die Computerleistung allmählich abnimmt, bis das Programm abstürzt oder das gesamte Betriebssystem einfriert. Wenn Sie das für das Leck verantwortliche Programm beenden, wird der Speicher des Systems freigegeben und das Problem behoben, bis das Programm das nächste Mal ausgeführt wird.
Speicherlecks treten auf, wenn ein Programm den Speicher nicht freigibt, nachdem es ihn nicht mehr benötigt. Wenn ein Programm einen Prozess ausführt, fordert es beim System eine bestimmte Menge Speicher an, um diesen Prozess auszuführen. Nach Abschluss des Prozesses sollte das Programm diesen Speicher an das System zurückgeben, damit andere Programme ihn verwenden können. Wenn das Programm nicht die richtigen Funktionen enthält, die Speicher freigeben (oder diese Funktionen nicht korrekt verwendet werden), behält es diesen Speicher stattdessen dauerhaft. Wenn das Programm diesen Prozess später erneut ausführt, fordert es beim System weiteren Speicher an, anstatt den bereits zugewiesenen Speicher zu verwenden. Dadurch erhöht sich die von ihm verwendete Menge an RAM, bis für andere Funktionen kein Speicher mehr übrig ist.
Ein Programm mit einem Speicherleck verliert bei jeder Ausführung weiter Speicher, bis der Fehler behoben ist. Glücklicherweise enthalten Softwareentwicklungskits häufig Debugger, die den Quellcode eines Programms auf Speicherlecks prüfen können. Sobald der Entwickler des Programms den Fehler findet, kann er das Programm aktualisieren und einen Patch veröffentlichen.
NOTE: Einige Programmiersprachen wie Java und Python verwenden eine Speicherverwaltungstechnik namens „Garbage Collection“, die Speicher automatisch zurückfordert und viele (aber nicht alle) Fehler durch Speicherlecks beheben kann.
Testen Sie Ihr Wissen