Xcode 11 hata ayıklayıcı son derece yavaş - Bilinen bir sorun mu?


95

En son Xcode 11.0 (11A420a) sürümüne güncellediğimden beri, hata ayıklama son derece yavaş ve zahmetli.

DÜZENLEME: 11.1 GM'ye (11A1027) güncelledikten sonra sorun hala aynı.

Bir projeyi derlemek ve onu simülatörde veya bir cihazda çalıştırmak sorun değil. Ancak, bir kesme noktasına ulaşıldığında Xcode az çok kullanılamaz hale gelir:

  • Kesme noktasına ulaşıldığında program yürütme hemen durur. Bununla birlikte, Xcode'un kod penceresindeki konumu göstermek için 30 saniyeye ve değişken görünümün içeriğini (kesme noktasında bulunan değişkenlerin değerlerini ve durumlarını gösteren) yüklemek için yaklaşık bir dakikaya ihtiyacı vardır.
  • Ben kullanırsanız içine adım ya üzerinde Adım özellikleri bu değişkenleri yüklemek için bir sonraki adım ve tekrar bir dakika daha gerçekleştirmek için bir dakika kadar sürer.

3.2 GHz i7 ve 32 GB ram içeren bir Mac mini 2018'de Xcode çalıştırıyorum. Xcode 10'u daha önce aynı makinede sorunsuz olarak kullandım.


"Xcode yavaş" araması, bir ton iş parçacığı ve elbette olası çözümleri getirir. İOS Developer olarak geçirdiğim yıllardan beri Xcode'un hiçbir zaman en hızlı ve kararlı program olmadığını biliyorum. Ancak hiçbir zaman şimdiki kadar kötü olmadı.

Maalesef bilinen hilelerin hiçbirinin (Xcode veya Mac'i yeniden başlatmak, projeyi temizlemek, Xcode kitaplık klasörlerini temizlemek vb.) Herhangi bir etkisi olmadı.

Yani asıl soru şu:

Bu, Xcode 11'de bilinen bir sorun mu? Bilinen herhangi bir çözüm var mı?


Yeni başlayanlar için Xcode'un en son kararlı sürümü 11A420a değil 11A1027'dir. Güncelleyerek başlardım.
Rafael Francisco

2
Mmh, 11A420a, App Store'da bulunan en son sürümdür
Andrei Herford

2
Şimdi 11A420a'ya güncelledim ve sorun hala aynı.
Andrei Herford

2
11.1'i denedim (11A1027) - aynı
nikans

3
Yapabileceğiniz bir şey, Apple'a bir hata raporu sunmaktır. Genelde yaptığım şey bu. Sonunda cevap verirler. Genellikle sistem bilgisi isterler ve bazı teşhisler çalıştırmanızı gerektirir. Genel olarak, Xcode yavaştır ve Apple'ın bunu nasıl düzelteceğini bildiğinden emin değilim. 10 çekirdekli bir iMac Pro üzerinde çalışıyorum ve Xcode hala çok yavaş.
Mobile Ben

Yanıtlar:


26

Ben de aynı sorunu yaşadım ve son zamanlarda programım için teşhisi devre dışı bırakmayı unuttuğumu anladım.

görüntü açıklamasını buraya girin

Çalıştırma yapılandırmalarınızı açın -> Şemaları yönet -> Şemayı düzenle -> Çalıştır -> Teşhis sekmesi


7
Cevap için teşekkürler. Olumlu oylar nedeniyle, bunun bazı kullanıcılar için sorunu çözdüğünü varsayıyorum. Ancak benim durumumda hiçbir fark yaratmadı. Bu bazı durumlarda yardımcı olabilse de maalesef genel bir çözüm değil
Andrei Herford

Andrei "Yavaşlama" nın ne anlama geldiğine dair bazı niceliksel ölçütler verebilir misiniz? Swift ve Objective-C'nin karma dil projelerinin derlemelerinin genellikle daha yavaş olduğunu biliyor musunuz?
Gennadiy Ryabkin

2
Sanırım hepsi söz konusu ... Öncelikle bunun inşa süresi ile ilgisi yok. Önce yazılı olarak: "Hiçbir sorunu olan bir proje Derleme ve simülatör ya da bir cihazda çalışan bir kesme noktası ulaşan Ancak Xcode az ya da çok kullanışsız hale gelir"
Andrei Herford

Havalı Andrei, ama hata ayıklayıcı hakkındaki cevabım. Teşhis sayfası, hata ayıklayıcının ayarlarını gösterir. Ve inşa süresi hakkında hiçbir şey yok. Özellikle bellek yönetimi ve ayırmalarla ilgili bölüm. Şemanızın ve yapılandırmanızın adını yeniden kontrol edin.
Gennadiy Ryabkin

Andrei, Xcode 11'inizin üzerine en son OS-X'i ima eden özel bir LLDB kurduğunuzu sanmıyorum. Çevrenize özgü bir şeydir. Tüm şema ayarlarını bir kez daha kontrol etmenizi tavsiye ederim.
Gennadiy Ryabkin

1

Tüme karşı Artımlı Derleme davranışını kullanırken bazı performans iyileştirmeleri gördüm. Ek olarak, Mojave ve Catalina'da çalışmak performans sorunları gösteriyor olmalıdır. Özellikle Canvas önizlemesi ve diğer yeni özellikler Xcode'un son sürümünden daha fazla CPU yoğunluğu gerektirdiğinden, Xcode 11'i kullanırken Mojave performansının daha düşük olmasını beklerdim (işletim sisteminin bu sürümü için optimize edilmediğinden). Catalina Beta sürümündeyken, ek sorunlar da görmeyi bekliyorum. Göz testi dışında özel önlemler almadım. Whole Compilation'daki ilk çalıştırma yavaştır ancak daha sonra daha iyi hale gelecek gibi görünüyor.

Hızlı yardım durumları:

Özet

Bu ayar, bir modüldeki Swift dosyalarının yeniden oluşturulma şeklini kontrol eder. * Artımlı : Modülde yalnızca güncel olmayan Swift kaynak dosyalarını yeniden oluşturun, gerektiğinde birden çok derleyici işlemi çalıştırın. * Tüm Modül : Modüldeki tüm Swift kaynak dosyalarını her zaman tek bir derleyici işleminde yeniden oluşturun. Beyanname

SWIFT_COMPILATION_MODE Değer Türü

Numaralandırma (Dize)


4
Derleme süresi tamamdır, xcode'u en yakın kara deliğin olay ufkuna yakın bir yere ışınlasa da kesme noktaları kullanır.
nikans

2
Cevap soruda anlatılan problemi çözmese bile yazarın çaba sarf ettiği fark edilir. Öyleyse bu, kitlesel olumsuz oylar için bir neden olmamalı, değil mi?
Andrei Herford

Artımlı, aslında şu anda hata ayıklama yapılarında önerilen ayardır (bkz. WWDC talk developer.apple.com/videos/play/wwdc2018/408 ). Belki bu proje bazında bir projeye bağlıdır, ancak bizimkine göre temiz bir yapı, tüm modül yapımından biraz daha yavaş (5sn), ancak artımlı derlemeler için yaklaşık% 40 (30s) daha hızlıydı.
Mike Bryant

@nikans derleme süresi diğer IDE ve diğer dillerle karşılaştırıldığında hala yavaş. Ama en kötüsünün hata ayıklayıcı olduğunu kabul etmeliyim.
yangın kapanı

1

Lütfen şunun işaretini kaldırmayı deneyin: Düzenleme Şemasında her hedefte Yapıyı Paralelleştir . Projenizin birçok hedefi varsa, inşa etmek için zaman kazandıracaktır.

Şemayı Düzenle:

görüntü açıklamasını buraya girin


0

Xcode'u güvenli modda çalıştırmayı denediniz mi? İdeal değil, ancak onu verimli bir şekilde çalıştırabilmemin tek yolu buydu. Bu, cihazımın artık güvenli modda algılanmadığı son Catalina güncellemesine kadar. Şimdi başa dönüyorum.


Antivirüs yazılımımın işleri yavaşlattığı ortaya çıktı. Devre dışı bırakmak sorunu çözdü.
Dino

@beefon Dino'nun MacO'ların güvenli modunu kastettiğine inanıyorum. Bununla ilgili daha fazla bilgiyi buradan okuyabilirsiniz: support.apple.com/en-us/HT201262
Bartosz Kunat

0

Aynı sorunları iki farklı durumda buldum:

1) uygulama Xcode tarafından başlatılmaz, yani "Yürütülebilir dosyanın başlatılmasını bekle" bayrağı Şema Çalıştırma ayarlarının Bilgi panelinde ayarlanır;

2) şema ayarlarında "Bir arka planda getirme etkinliği nedeniyle başlat" seçeneği seçilir (ancak bu varsayılan değildir)

Xcode seçeneği konumu

Xcode 11.2.1 (11B500)


0

Benim durumumda (XCode 11.x, MacOS 10.15.2) Aşırı hata ayıklayıcı yavaşlığının yalnızca başka bir tek adımlı işlem devam ederken tek adımda , yani adım düğmesine çok hızlı basarsam tetiklendiğini gördüm . Şu anki çözümüm bunu yapmaktan kaçınmaktır.

Saf spekülasyon ama belki de XCode / LLDB'nin aynı anda birden fazla kesme noktasına hizmet vermeye çalışmasıyla tetiklendi? Biri hariç tüm kesme noktalarını kaldırmayı deneyin ve bunun işlere yardımcı olup olmadığına bakın.

İlgili olması durumunda: XCode'da çoğunlukla C ++ ile çalışıyorum, burada ve orada biraz Obj-C ile. Şu anda Swift kullanmıyorum.


0

Bununla sonsuza dek uğraştım ve sonunda anladım. ~ / .Lldbinit dosyamdaki şu satırlardı:

break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc

Bu satırları yorumladım ve şimdi neredeyse hata ayıklayıcı olmadan olduğu kadar hızlı!


-2

238 kullanılmayan kesme noktası belirledim. Onları sildiğimde, yine hızlı (tanılama açık olsa bile).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.