2013-11-28 15 views
7

Esiste un modo per confrontare i file di traccia salvati con Strumenti. Come posso avere un confronto di qualsiasi modo per realizzare consecutivi build dell'app.Confronto traccia Xcode Instruments

Affinché io possa rilasciare l'iPhone versione 1.0, in 2 mesi 1.1. Qual è il migliore deve avere un confronto di profilazione in termini di memoria e tempo?

risposta

3

È possibile salvare i file di traccia. Ma per rendere ragionevole interpretare questi risultati in una data futura, è utile inserire "flags" nella traccia, per contrassegnare eventi significativi, in modo da poter dire cosa stava facendo l'app in punti notevoli della traccia.

In passato, suggerirei l'inclusione di flag inseriti a livello di codice, in modo da avere alcune basi per il confronto in futuro, ma questo è rotto in iOS7. Ma se si sta eseguendo questo sul simulatore con iOS prima di 7.0, è possibile:

  • Aggiungi DTPerformanceSession.framework al progetto;

  • In vostra fonte:

    #import <DTPerformanceSession/DTSignalFlag.h> 
    
  • Poi, nella tua fonte, è possibile inserire automaticamente le bandiere in Strumenti (se in esecuzione su simulatore di pre iOS7):

    // Point flag (just an event in time) 
    DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE); 
    
    // Start flag (to mark the start of something) 
    DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE); 
    
    // End flag (to mark the end of something) 
    DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE); 
    
  • Rimuovere DTPerformanceSession.framework da il tuo progetto (il processo di aggiunta consente a Xcode di risolvere l'intestazione, ma non vuoi mantenerlo nel tuo progetto iOS altrimenti avrai degli errori di collegamento).

Si potrebbe desiderare di conservare una copia dei rispettivi archivi in ​​modo da poter resymbolicate il file di traccia in una data futura.

Ovviamente, se profiling in iOS7, è possibile aggiungere le bandiere te stesso, manualmente, ma è non solo come elegante o rigorosa come segnalazione di programmazione.

+0

Grazie per la risposta, purtroppo la mia domanda è iOS 7 solo. Quello che stai dicendo è che per vedere la differenza di tracciamento, devo esaminare manualmente il contenuto di traccia di quelle build consecutive. Non esiste una "differenza di confronto automatizzata" per i file di traccia. In caso contrario, tenere traccia della memoria e del profilo temporale sembra essere possibile solo manualmente. – user3017495

+0

Dopo aver fatto ciò, è necessario andare su Finestra> Gestisci contrassegni, quindi scegliere di visualizzare i segnali di segnalazione, altrimenti non li vedrete – Dov

+0

Nelle versioni successive del SO, ora possiamo usare "punti di interesse". http://stackoverflow.com/a/39416673/1271826 – Rob

2

Il modo migliore, che io a capire è:

  1. installare entrambe le versioni di App per dispositivi
  2. Aprire Instruments.
  3. Fare clic sul pulsante "Libreria" e aggiungere quello che si desidera tracciare. Per me sembra che:

    • monitorare l'attività
    • allocazioni
    • Tempo Profiler
    • Network Activity
    • Memory Monitor
  4. Scegli come bersaglio il vostro dispositivo iOS. Quindi la tua domanda per testare.

  5. Esegui in serie lo stesso scenario su entrambe le versioni dell'app.
  6. Ora puoi vedere il confronto per le tue 2 esecuzioni simili.
  7. Basta fare clic su qualsiasi riga per visualizzare i dettagli della corsa.

Sto ancora cercando i modi, come automatizzare questa procedura e ottenere automaticamente una revisione principale. Ma ora è il modo migliore, lo so.

Spero che aiuti.

Per me sembra che:

xcode-instruments-trace-comparison

Problemi correlati