Domanda

Apple dell'ambiente di sviluppo Xcode fornire strumenti per il rilevamento di perdite di memoria?

Sono particolarmente interessati a strumenti che si applicano per l'iPhone SDK.Attualmente la mia piattaforma preferita per hobby e progetti di programmazione

Documentazione/tutorial per tali strumenti sarebbe molto utile.

È stato utile?

Soluzione

Ce n'è uno specificamente chiamato Leaks e come diceva un precedente poster, il modo più semplice per eseguirlo è direttamente da Xcode:

  
    

run - > Inizia con Performance Tool - & Gt; Perdite

  

Sembra molto bravo a rilevare perdite di memoria ed è stato facile da capire per un capo non-C come me.

Altri suggerimenti

Seleziona Profile dal menu Product in Xcode 6 per avviare lo strumento Strumenti di Apple. (L'applicazione si trova all'interno del contenuto del pacchetto dell'applicazione Xcode: /Applications/Xcode.app/Contents/Applications/)

Un'alternativa commerciale è OmniObjectMeter . (Fuori produzione The Omni Group)

Il Clang Static Analyser è ottimo per trovare bug nei codici C, C ++ e Objective-C :

Ecco il link per usare lo strumento da xcode per rilevare perdite di memoria / prestazioni della tua applicazione ios / mac Passaggi per eseguire lo strumento da Xcode

Puoi eseguire gli strumenti all'interno di Xcode su menu -> run -> start with performance tool -> ...

  

L'ambiente di sviluppo Xcode di Apple fornisce strumenti per il rilevamento di perdite di memoria?

     

Sono particolarmente interessato agli strumenti che si applicano all'SDK per iPhone.

Sì. Apple li chiama & Quot; Instruments & Quot; (c'è molto di più che semplici strumenti di memoria).

Vedi Introduction to Instruments User Guide . In particolare, vedi Locating Memory Issues in Your App . Fornisce esempi su come utilizzare i modelli di traccia orientati alla memoria.

ObjectAlloc e MallocDebug dovrebbero essere entrambi d'aiuto. Se hai installato l'intero SDK, verranno trovati in Developer - & Gt; Applicazioni - & Gt; Performance Tools.

I loro nomi ti danno una buona idea delle loro funzioni, OA, tiene traccia degli oggetti creati e MA è uno strumento di perdita di memoria generale.

Non li ho ancora provati con lo sviluppo di iPhone, ma devo credere che funzionerebbero anche lì.

Supponendo di esserti registrato al sito per sviluppatori di iPhone ADC, qui il link da seguire: Instruments User Guide

Quando si utilizza rustyshelf's solution assicurarsi di provare iPhone e non sul simulatore. L'uso della memoria è notevolmente diverso.

Ha riassunto i principali strumenti di perdita di memoria: iphone-essential-performance-tools-list

Prova anche questo, un semplice tutorial per iniziare con le istruzioni Xcode

Strumento di perdita di memoria: http://www.raywenderlich.com/2696/

Base: http://www.raywenderlich.com/ 23037 / how-to-use-strumenti-in-Xcode

enter image description here

Passo 1.Scegli il Assegnazioni dello strumento

  1. Scegliere il modello di profiling per le Assegnazioni:

enter image description here

  1. I principali Strumenti di interfaccia, fare clic su VM Tracker, se presente, e premere il tasto Canc poiché non avrete bisogno di quel particolare strumento:

enter image description here

Cliccando sul pulsante + in alto a destra, è possibile aggiungere ulteriori strumenti per i diversi tipi di test, ma io non li copre in questo tutorial.

Passo 2.Impostare i vostri Strumenti impostazioni

Prima di eseguire qualsiasi analisi, ci sono alcune cose che dovete fare.Primo, è necessario collegare un dispositivo iOS che ha la tua app installata su di esso.Deve essere un dispositivo fisico, perché il Simulatore iOS è ancora un simulatore e potrebbe non rappresentare accuratamente l'utilizzo di memoria nel vostro app o come un'app può eseguire sotto pressione della memoria.

Per scegliere la vostra destinazione, fare clic su Il Mio Computer vicino alla parte superiore, passare il mouse sopra il dispositivo, e poi scegli la tua app dal sotto-menu:

enter image description here

A quel punto, c'è un pannello in cui è possibile modificare le impostazioni per i tipi di allocazioni vi sarà la visualizzazione.Oltre a rendere sicuro il Creati E Persistente bubble è controllato, non c'è molto che si devono fare in anticipo.

enter image description here

Passo 3.Premere il pulsante di registrazione per eseguire lo strumento

Una volta che si preme il pulsante di registrazione in alto a sinistra, l'app si avvia sul vostro dispositivo, e Strumenti di iniziare a progettare il vostro allocazioni.Tutto quello che dovete fare qui è gestito attraverso la tua app, focalizzandosi sulle possibili aree problematiche per vedere se più memoria alloca che rilascia.Questo potrebbe significare fare un sacco di compiti ripetitivi, ma ti ringrazio te più tardi.

Si dovrebbe vedere qualcosa di simile a questo:

enter image description here

Si consiglia di esecuzione attraverso la vostra applicazione una volta e di arrivare a un punto stabile nella memoria, così hai una buona linea di base che farà alcun aumento notevole.Quando si è soddisfatti si dispone di dati sufficienti per eseguire il test, premere il pulsante stop in alto a sinistra.

Passo 4.Analizzare

  1. La prima cosa che mi viene da fare è impostare il mio ispezione gamma di misura totale persistente byte nella mia linea di base.Che la persistente numero di byte è situato sotto il riepilogo di allocazione.

enter image description here

Effettivamente impostare l'ispezione intervallo, utilizzare i tasti di scelta rapida Comando < per la sinistra di ispezione e gamma Comando > per il diritto di ispezione gamma.Nella nostra applicazione, abbiamo una base di circa 20 mb.

enter image description here

  1. Quindi, mi sposto a destra ispezione gamma ad un punto in cui ho dovuto eseguire tramite l'app di nuovo e tornò per la nostra radice.Qui, si può vedere la memoria è circa la stessa.Così, facendo di questo un paio di volte di più e vedere la vostra memoria tornano alla base, si può presupporre che non ci sono grossi problemi di memoria.

enter image description here

Ci sono diversi modi per analizzare questi dati che non qui, ma essere consapevoli del fatto che c'è un intero menu a tendina dei modi per visualizzare e analizzare i dati.

enter image description here

Passaggio 5.Marcatura generazioni

Se si preferisce non avere a che fare con l'ispezione intervalli di tanto, c'è anche una funzione chiamata Mark Generazione.C'è un pulsante sulla destra del pannello degli strumenti.

enter image description here

Questo pulsante segna punti sulla timeline di strumenti in base a dove la linea di controllo è.Lo fa, al fine di tenere traccia di tutte le allocazioni dal precedente marchio, o dall'inizio, se non ci sono altri segni di punteggiatura.È possibile contrassegnare le generazioni, come si eseguono le allocazioni di strumento o dopo aver fermato la corsa, come in questo esempio:

enter image description here

Passaggio 6.Check out la traccia dello stack

L'ultima cosa da coprire è guardando la traccia dello stack.Per questo, si desidera impostare il vostro ispezione gamma di evidenziare tutte le assegnazioni, e poi guardate le statistiche di visualizzazione, assicurandosi che il Creati E Persistente bubble è selezionato sul pannello di destra.Nelle statistiche di visualizzazione, assicurarsi Persistente Byte, ordinati dal più alto al più basso.Ci sono un sacco di allocazioni di qui, e può essere difficile capire che cosa sta succedendo, dal momento che un sacco di loro sono il sistema di sovvenzioni.

enter image description here

Andando in profondità

  1. Guarda i maggiori assegnazioni e fare clic sulla freccia rivolta a destra.Un sacco di volte ci saranno delle allocazioni all'interno di quelle che hai cliccato e molti di loro non hanno un significato per voi.

enter image description here

  1. Come si evidenzia diverse allocazioni dopo aver fatto clic su una freccia, continuare a guardare il estesi dettaglio sul pannello di destra.Alla fine ci si imbatte in qualche testo in grassetto che conduce al codice vero e proprio del progetto, dicendo che il problema potrebbe essere.

enter image description here

  1. Se si fa doppio clic su uno dei gli elementi in grassetto nella traccia dello stack, che vi porterà al codice vero e proprio (supponendo che si correva accantonamenti su una delle tue app).

enter image description here

  1. Ci sono un sacco di cose utili su questo punto di vista, essendo la maggior parte dei tag gialli a destra che mostra quanta memoria ogni chiamata al metodo di assunzione.Ogni app è diverso, quindi si, lo sviluppatore, devono decidere se evidenziato metodo è un problema, qualcosa che si può ottimizzare, o solo di una parte inevitabile della tua app.

  2. Nel mio caso, che UIColor variabile è qualcosa che è persistente e utilizzato in tutta la nostra app e, pertanto, accettabile per tutta la durata della nostra app.

trovate qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top