2015-03-19 17 views
7

Xcode dodał wspaniałą funkcję, aby zobaczyć, jak aplikacja jest kompilowana w czasie rzeczywistym, ale jak można sprawdzić czasy kompilacji dla poszczególnych klas, a następnie sprawdzić, jaki kod powoduje powolne czasy kompilacji?Jak wyśledzić powolne kompilowanie kodu Swift?

This jest pomocna, ale dostaje się tam tylko częściowo.

Odpowiedz

6

Użyj xctool. Gdy skompilujesz swój projekt w linii poleceń, wyemituje on czas potrzebny na skompilowanie każdego pliku do konsoli. np:

✓ Compile MySwiftFile.swift (12067 ms)

Dodatkowo dla Swift 1.2 przynajmniej tam jest flaga debug-time-function które mogą być przekazywane do kompilatora Swift pokazać problematycznych funkcje.

Dalsze omówienie here

1

Otwórz nawigator raportów (lewy panel ikony balonu). Podczas budowania kliknij najwyższą linię za pomocą młotka do budowania, a zobaczysz postęp kompilacji dla każdego skompilowanego pliku.

+0

Wydaje się to pomocne w przypadku powolnego kompilowania plików, ale ponieważ Xcode kompiluje wiele plików równolegle i żaden z moich plików nie jest kompilacją wielosekundową, nie widzę, które pliki są najdłuższe, ponieważ dzieje się to zbyt szybko. Najlepiej byłoby zobaczyć sposób kompilacji każdego pliku. – Shizam

+0

Szybki kompilator ma opcję '-j ' do kontrolowania # kompilacji równoległych. Może jeśli dostarczysz to do 1, możesz to lepiej oglądać. –

+0

Po prostu to wypróbowałem. Wygląda na to, że szybkie działanie nie idzie tak daleko, gdy udostępnia opcję, ale wciąż czeka w kolejce na kilka plików do kompilacji. Moje pliki klasowe są raczej małe, więc po prostu padają, plop, plop, .. –

1

Swift zawiera teraz funkcja-by-Function kompilatora Profiler. Możesz włączyć go za pomocą flagi kompilatora -Xfrontend -debug-time-function-bodies.

Wykonaj czystą przebudowę i użyj polecenia grep z this post, aby uzyskać listę posortowaną według kolejności kompilacji według funkcji.

Bardzo mi to pomogło - skróciłem o 15 sekund czas budowy, dostosowując najwolniejsze do kompilacji funkcje.

Powiązane problemy