Wie aktiviere ich das Build-Timing in Xcode?

89

Ich möchte wissen, wie lange die Builds meines Projekts dauern, indem ich sie beispielsweise im Build-Bereich anzeige. Ist diese Option irgendwo in Xcode verfügbar?

Vielen Dank.

Guillaume
quelle

Antworten:

177

Geben Sie dies in das Terminal ein:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

Die Dauer wird im Aktivitäts-Viewer nach einem Build neben der Meldung "Erfolgreich" angezeigt.

Wenn Sie die App ausführen, wird der Status durch den laufenden Status ersetzt, bevor Sie die Dauer sehen können.

Dies ersetzt den Eintrag, der in älteren Versionen von Xcode verwendet wurde:

Standardeinstellungen schreiben com.apple.Xcode ShowBuildOperationDuration YES

Xcode muss möglicherweise geschlossen werden, bevor Sie diesen Befehl eingeben. Die Dauer sollte unten links im Projektfenster angezeigt werden.

Kommentar eines Xcode-Entwicklers: "Wie bei allen undokumentierten Benutzerstandards wird dies nicht unterstützt, es wird davon ausgegangen (aber nicht garantiert), dass es korrekt ist, und es wird nicht garantiert, dass es in zukünftigen Versionen wirksam ist."

Guillaume
quelle
7
Dies funktioniert auch für Xcode 6. Die Erstellungszeit wird unter der Titelleiste des Fensters angezeigt.
Klaas
6
@ Bobobobo Screenshot, wo die Zeit in Xcode 6.1.1 erscheint <img src = " i.imgur.com/6KkYdls.png ">
Chunkyguy
2
Gibt es eine Möglichkeit, es in eine Datei zu drucken?
Alex Bartiş
1
Bestätigt, dass dies für mich in Xcode 7.1.1 (mit dem neueren com.apple.dt.Xcode) funktioniert
Jedidja
1
Wenn sich jemand wundert, ist der Aktivitäts-Viewer das Fenster in der Mitte von xcode, in dem angezeigt wird, was gerade erstellt wird und wie weit es im Prozess ist.
Warpzit
13

Nein, aber Sie können die Befehlszeile verwenden. CD in Ihr Projektverzeichnis und geben Sie ein

time xcodebuild
Nikolai Ruhe
quelle
13

In Xcode 10 können Sie jetzt mithilfe der Funktion "Timing Summary" eine hervorragende Aufschlüsselung der Erstellungszeiten anzeigen.

Produkt-> Aktion ausführen-> Mit Timing-Zusammenfassung erstellen

Dies zeigt jede Ihrer Zielerstellungszeiten und die gesamte Projekterstellungszeit an. Mit diesen Daten können Sie viele Analysen durchführen. Die Erstellungszeiten hängen von Ihrer Hardware ab. Schauen Sie sich Building Faster in Xcode von WWDC 2018 an, wenn Sie mehr erfahren möchten.

Xcode verfolgt jedoch standardmäßig alle Ihre Builds und Sie können deren Zeiten und Protokolle überprüfen, indem Sie den Berichtsnavigator aufrufen.

Erstellen Sie Protokolle in Report Navigator

Andrew
quelle
Es gibt keine Möglichkeit, das Build-Protokoll von XCode mit Timings zu speichern. Ich kann nur die Zeit in der XCode-Ausgabe sehen
msk
3

Ich habe es mit Run Scripts in gelöstBuild Phases

Ich habe am Startpunkt des Builds ein Run Script hinzugefügt:

echo $(date +%s) > ../build_start_time

und eine am Ende:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

Jetzt kann ich die Zeit in Build Log -> All Messages sehen

adsurbum
quelle
1
In Xcode 6.4 können Sie keine Ausführungsphase für das Ausführen eines Skripts vor einer der Erstellungsphasen "Lager" ziehen. Wenn Sie eine Reihe zusätzlicher Erstellungsphasen erstellen, können Sie diese untereinander neu anordnen. Es scheint jedoch, dass alle Erstellungsphasen "auf Lager" an erster Stelle stehen müssen. Haben Sie einen Weg gefunden, dies zu umgehen?
Jason Pepas
0

Nach Xcode 10

  • Wenn Sie über die Befehlszeile erstellen, verwenden Sie -buildWithTimingSummary, um die Zusammenfassung der Erstellungszeit anzuzeigen.
xcodebuild -buildWithTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • Wenn Sie Xcode verwenden , Product->Perform Action->Build With Timing Summary. Siehe Zusammenfassung der Bauzeit im Xcode-Bauprotokoll.
RY Zheng
quelle
Heutzutage ist das richtige Kommandozeilenargument-showBuildTimingSummary
Morse