2017-08-11 1 views
5

Manchmal findet Code seinen Weg zu meinem Team Dev Zweig, die sehr langsam kompiliert. Wenn dies zu dem Punkt kommt, an dem es mehrere Minuten dauert, haben wir keine andere Wahl, als unsere Aufgaben fallen zu lassen und nach dem zu suchen, was dazu führte, dass wir sonst viel Zeit verlieren würden, bis wir es gelöst haben.Kann ich einen Komponententest erstellen, der fehlschlägt, wenn die Kompilierzeit über einem akzeptablen Wert liegt?

Für unsere Apps Leistung haben wir Komponententests zu stoppen unsere Benutzer langsam Zeiten, Ich frage mich, ob es möglich ist, einen Test, wo langsame Kompilierzeiten unsere Tests fehlschlagen, so dass die Änderungen, die langsamen Kompilierzeiten verursachen können identifiziert und entfernt werden, bevor sie die gesamte Zeit des Teams verschwenden.

Antwort

1

Sie können in Ihrem Projekt Build-Einstellungen hinzufügen -> Andere Swift Flags folgende Flagge: -Xfrontend -warn-long-function-bodies=<time> wo in <time> Sie die Menge von ms angeben. Sie können dann Warnungen für alle Funktionen sehen, die mehr Zeit benötigen und sie beheben.

Es wird nicht an Ihren Tests scheitern, aber das ganze Team wird sich bewusst sein, wenn sie etwas programmieren, das zu lange dauert, um es zu kompilieren.

0

Vielleicht braucht es ein wenig zusätzlichen Aufwand, aber eine mögliche Lösung:

Ich benutze ‚xcodebuild bereinigter Build OTHER_SWIFT_FLAGS = "- Xfrontend debug-Zeit-Funktion-Körper" | grep "[0-9] [0-9]. [0-9] * ms" | sort -nr> culprits.txt ', um eine Textdatei mit der Zeit zu erhalten, die zum Kompilieren einzelner Methoden benötigt wurde. Dann wissen Sie, wo der Compiler stecken bleibt und können optimieren, bis die Methode, die am längsten dauert, um zu kompilieren, < 100ms ist.

source

Verwandte Themen