XCode Long Compiles and Completion Problem

Hüseyin Bagana
Swift Türkiye
Published in
2 min readMay 22, 2017
Source

. + [ctrl] + [space] bu ölümcül 3'lü son zamanlarda beni gerçekten yormaya başladı. Oysa en başa döndüğümüzde herşey hep güzel oluyor veya güzeldi. Ne zaman yeni bir projeye başlasam o kadar mutlu oluyorum ki yazarken design konusunda düşünmeler , o anki akıcılık ve XCode’a ne söylesem yapıyor olması.

  • Autocompletion ✅
  • Compile Speed ✅

Yazdığınız satır sayıdı 50–60 binlere ulaştığında XCode’a bi inme iniyor ilk önce. Ortalık yangın yeri osx ağlıyor bi kenarda. Sizde bi kenarda ağlıyorsunuz.

  • Autocompletion 😢
  • Compile Speed 😢

Tamam birşeyler yapma vakti geldi diyorsunuz . Jordan Rose mayıs ayında compile zamanı sizin tanımladığının parametrenin üstünde olan methodları warning olarak veren bir swift flag ekledi.

Bu flag sayesinde verdiğimiz sınır değerinden fazla zamanda compile olan methodlar warning olarak bizlere gösteriliyor.

-Xfrontend

-warn-long-function-bodies=100

Projemizin aldında target içinden ilgili scheme yi de seçtikten sonra Build Settings altında Other Swift Flags’e yukarıdaki iki parametreyi ekliyoruz. Ben 100 ms dan uzun sürenleri görmek istediğimden 100 yazdım ama siz o kısma istediğiniz değeri yazıp ona göre sonuçları görebilirsiniz.

İlgili flagleri ekledikten sonra bir method içersinde tam yarım dakika durduğunu gördüm (31301 ms).

Metod içerisinde complex çok fazla şey yoktu genel olarak 7–8 tane yukarıdaki satır ile aynı label text’inin set edildiği satırlar bulunuyordu. İlginç bir şekilde eşitliğin sağ tarafındaki string concatenation yüzünden olduğunu fark ettim ve araştırmalarım sonucunda ‘+’ operatörü ile stringleri birleştirmeyi bıraktım ve string interpolation ile bu satırları tekrar yazdım.

Bu işlemden sonra 31301 ms den yaklaşık 100 ms altına düştü. Ve autocompletion ve compile hızında düzelmeler oldu.

--

--