2017-08-11 93 views
5

Bazen kodlar, ekiplerime çok yavaş bir şekilde derleyen dev dalma yolunu bulur. Bu, birkaç dakika uzun sürdüğü noktaya geldiğinde, başka bir seçeneğimiz yok, ancak görevlerimizi düşürmek ve bunun nedenini araştırmak için başka bir seçeneğimiz var, biz onu çözene kadar çok zaman kaybederiz.Derleme süresi kabul edilebilir bir düzeyin üzerindeyse başarısız olan bir birim sınaması oluşturabilir miyim?

Uygulama performansımız için, kullanıcılarımızın yavaş zaman geçirmesini önlemek için birim testlerimiz var, yavaş derleme sürelerinin testlerimizin başarısız olmasına neden olacak bir testin yapılıp yapılamayacağını merak ediyorum. Ekiplerin tüm zamanını boşa harcamadan hemen tespit edilmesi ve kaldırılması.

cevap

1

Sen projenizin Yapı Ayarlar bölümünde ekleyebilirsiniz -> Diğer Swift Bayraklar aşağıdaki bayrak: <time> size ms miktarını belirtmek -Xfrontend -warn-long-function-bodies=<time>. Ardından, daha fazla zaman alan ve bunları düzelten herhangi bir işlev için uyarıları görebileceksiniz.

Testlerinizi başarısızlığa uğratmayacaksınız, ancak tüm takım derlenecek çok uzun süren bir şeyi kodladıklarında haberdar olacaktır.

0

Belki biraz fazladan çaba gerekiyor ama olası bir çözüm: Kullandığım

'xcodebuild temiz inşa OTHER_SWIFT_FLAGS = "- Xfrontend -debug zamanlı fonksiyon-organları" | grep "[0-9] [0-9]. [0-9] * ms" | bireysel yöntemleri derlemek için gereken süreyi içeren bir metin dosyası almak için -nr> culprits.txt 'yazın. Daha sonra derleyicinin nereye yapıştığını biliyorsunuz ve en uzun süren yöntemi derleyene kadar optimize edebileceksiniz < 100 ms.

source