Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

2 Ein erstes Projekt erstellen > 2.7 Rezept: Lecks mit Instruments erkennen - Pg. 109

2.7 Rezept: Lecks mit Instruments erkennen Durch die Kombination aus verzögertem Laden und durch Speicherwarnungen ausgelöster Leerung kann der Cache speicherfreundlich arbeiten. Sobald Objekte in den Speicher geladen werden, können sie ohne Ladeverzögerung verwendet und wiederverwendet werden. Ist der Speicher jedoch knapp, leistet der Cache seinen Beitrag, um Ressourcen freizugeben, damit die Anwendung weiter ausge- führt werden kann. 2.7 Rezept: Lecks mit Instruments erkennen Instruments spielt eine wichtige Rolle bei der Optimierung von Anwendungen. Dieses Programm enthält eine Reihe von Werkzeugen, mit denen Sie die Leistung überwachen können. Mithilfe der Leckerkennung können Sie Speicherlecks innerhalb Ihres Programms nachverfolgen, identifizieren und aufheben. Rezept 2.3 zeigt eine Anwendung, die auf Anforderung zwei Arten von Lecks her- vorruft: einen mit malloc() erstellten String, für den es kein zugehöriges free() gibt, und das NSArray -Beispiel, das Sie schon kennen. Um Instruments im Einsatz zu erleben, laden Sie zunächst das einfache Projekt aus Rezept 2.3. Wäh- len Sie in Xcode Run > Start with Performance Tool > Leaks. Dadurch werden sowohl Instruments als auch der Simulator gestartet. Die Anwendung wird im Simulator ausgeführt, wobei Instruments den Fortschritt überwacht. Klicken Sie auf eine der beiden Schaltflächen, um ein Speicherleck hervorzurufen. Die Schaltfläche Leak String führt zu einem Leck aufgrund eines mit malloc erstellten Blocks, Leak Array zu einem Leck durch ein NSArray von 32 Byte. Die Speicherlecks erscheinen in Instruments als orangefarbene Dreiecke, wobei deren Größe der Größe des Lecks entspricht. Klicken Sie auf Leaks, um wie in Abbildung 2.11 eine Liste der einzelnen Lecks zu sehen. Standard- mäßig ist ObjectAlloc ausgewählt. Bei jedem Leck ist der Betrag an betroffenem Speicher angege- ben, die Adresse, an dem das Leck beginnt, und die Art des Verursacherobjekts. Abbildung 2.11: Instruments verfolgt Lecks nach, also Speicher, der nicht wiedergewonnen werden kann. 109