Xcode'da performans analizi oluşturma


Xcode 10 ile birlikte Build performansını analiz etmenin yeni yollarını sunuldu. Yeni Build Timing Özetini kullanarak Build performansınıza dair değerli bilgiler edinin.





Build tamamlandıktan sonra Rapor Gezgini'ne (Report Navigator) gidin ve son Build'i seçin. Yapı Zamanlama Özeti'ni (Build Timing Summary) görene kadar aşağı doğru ilerleyin.



Bu, projenizi geliştirmeniz gereken yerleri araştırmak için harika bir başlangıç ​​noktasıdır. En çok zaman alan yerler CompileSwiftSources ve PhaseScriptExecution. İlki açıkça Swift koduna geliyor. İkincisi, özel yapım aşamalarına işaret eder. Yalnızca sürüm oluşturma işlemleri için gerekli olan belirli çalışma komut dosyalarını devre dışı bırakmak genellikle mümkündür.

CompileSwiftSources tek başına geri kalan toplam zamandan daha büyüktür.

Bu durum gerçekten garip olmaktadır. Sistemin nasıl çalıştığına dair bazı önemli bilgiler veren bir açıklama için Xcode Build System'dan Rick Ballard'dan geldi:



"Evet - birçok derleme, özellikle derleme, birbirine paralel olarak çalışabiliyor, bu yüzden çok çekirdekli makineler, her bir komutu çalıştırmak için harcadığı süreden çok daha hızlı bir şekilde bitirecekler."


Fonksiyon ve Değişkenlerin Tip kontrolü

Yavaş build sürelerinin nedenlerini daraltmak için daha hızlı bilgi toplamak için hızlı bayrakları etkinleştirebilirsiniz. Bu bayraklar Xcode 10'dan önce zaten mevcuttu, ancak yine de çok kullanışlıdır.
Derleyici, -Xfrontend -warn-long-expression-type-checking = <limit> swift bayrağı kullanılarak yazım denetimi yapmak için uzun süren bireysel ifadeleri uyarır. Burada, uyarının verilebilmesi için bir ifadenin tip kontrolüne alması gereken milisaniye sayısının alt sınırı için <limit> değiştirilebilir.
Xcode'ta, 100 ms'den daha uzun süren herhangi bir işlev için bir uyarı tetikler.
Derleyici, -Xfrontend -warn-long-function-bodies = <limit> bayrağını etkinleştirerek <check> ms'den daha uzun süren herhangi bir işlev için bir uyarı tetikler.
Bu uyarıları etkinleştirmek için Yapı Ayarları, “Hızlı Derleyici - Özel Bayraklar”, “Diğer Swift Bayrakları” na (“Swift Compiler – Custom Flags”, “Other Swift Flags”) gidin:



Yapı performansını artırma 

Bu gönderi, yapı performansını analiz etmeye odaklanmış olsa da ve yapı performansınızı geliştirmek için çok sayıda yol var olmasına rağmen, Xcode'ta performansı doğrudan artırabilecek kendi ayarı vardır.