Mac & i 1/2017
S. 152
Developer's Corner
Memory Graph Debugger
Aufmacherbild

RAM-Inventur

So finden Sie Speicherlecks in Ihrer App

Mit Xcode 8 hat Apple ein neues Werkzeug unter die Entwickler gebracht: den Memory Graph Debugger. Er vereint nicht nur die Funktionen einiger Terminal-Kommandos, sondern hat auch eine schicke Bedienoberfläche innerhalb der Entwicklungsumgebung. Wir haben uns angeschaut, was er zu bieten hat und ob er die externe Instruments-App ersetzen kann.

Wer Software entwickelt, macht Fehler. Viele davon sind relativ leicht mit Hilfe des in Xcode integrierten Debuggers zu finden, sobald sie auftreten (siehe Mac & i Heft 2/14, S. 152). Manch andere dagegen sind sehr schwer zu entdecken, beispielsweise Speicherlecks, auf Englisch memory leaks.

Solche Fehler treten immer dann auf, wenn eine Anwendung freien Speicher vom Betriebssystem anfordert und ihn anschließend niemals wieder zurückgibt. Problematisch wird das allerdings nicht sofort. Sowohl das OS als auch andere Apps arbeiten zunächst ungehindert weiter, solange noch genügend freier Speicher vorhanden ist. Verwendet man die problematische App jedoch länger, frisst diese mehr und mehr RAM. In der Folge kann das gesamte System träger reagieren. Im schlimmsten Fall können Programme abstürzen oder vom Betriebssystem aufgrund von Speichermangel ohne Rückfrage beendet werden.