2015-03-19 12 views
7

Xcode ha aggiunto una grande funzionalità per vedere la vostra applicazione compilare in tempo reale, ma come si possono vedere le durate di compilazione per le singole classi e quindi vedere quale codice sta causando i tempi di compilazione lenti?Come rintracciare la compilazione lenta del codice Swift?

This è utile ma arriva solo parzialmente là.

risposta

6

Utilizzare xctool. Quando si compila il progetto sulla riga di comando, esso emetterà il tempo necessario per compilare ciascun file sulla console. per esempio:

✓ Compile MySwiftFile.swift (12067 ms)

Inoltre, per Swift 1.2 almeno c'è una bandiera debug-time-function che può essere passata al compilatore Swift visualizzare problematici funzioni.

Ulteriori discussioni here

1

Aprire il navigatore Rapporto (riquadro a sinistra dell'icona del fumetto). Quando costruisci fai clic sulla riga più in alto con il build hammer e vedi lo stato della compilazione per ogni file compilato.

+0

Questo sembra utile per _really_ lenta compilazione di file ma dal momento che Xcode compila molti file in parallelo e nessuno dei miei file è composto da più secondi in più non riesco a vedere visivamente quali file impiegano più tempo in quanto accade troppo velocemente. Idealmente, ci sarebbe un modo per vedere effettivamente il tempo della compilazione di ogni file. – Shizam

+0

Il compilatore veloce ha l'opzione '-j ' per controllare il # di compilazione parallela. Forse se lo fornisci a 1 puoi guardarlo meglio. –

+0

L'ho appena provato. Sembra che swift non vada avanti così tanto quando fornisce l'opzione, ma continua ad accodare un paio di file per la compilazione. I miei file di classe sono piuttosto piccoli quindi va solo plop, plop, plop, .. –

1

Swift ora include un compilatore profiler function-by-function. Puoi abilitarlo con il flag del compilatore -Xfrontend -debug-time-function-bodies.

Eseguire una ricostruzione pulita e utilizzare il comando grep da this post per ottenere una lista di tempo di compilazione inversa per funzione.

Questo è stato di grande aiuto per me - ho rifilato forse 15 secondi del mio tempo di costruzione sintonizzando le funzioni più lente da compilare.

Problemi correlati