Debugger Xcode 11 sangat lambat - Masalah yang diketahui?


95

Karena saya memperbarui ke Xcode versi 11.0 (11A420a) terbaru, proses debug menjadi sangat lambat dan tidak praktis.

EDIT: Setelah memperbarui ke 11.1 GM (11A1027) masalahnya masih sama.

Mengompilasi proyek dan menjalankannya di simulator atau di perangkat tidak masalah. Namun ketika mencapai breakpoint Xcode menjadi lebih atau kurang tidak dapat digunakan:

  • Eksekusi program segera berhenti ketika breakpoint tercapai. Namun Xcode membutuhkan waktu hingga 30 detik untuk menunjukkan posisi di jendela kode dan satu menit atau lebih untuk memuat konten tampilan variabel (yang menunjukkan nilai dan status variabel yang tersedia di breakpoint).
  • Jika saya menggunakan fitur Step into atau Step over , diperlukan satu menit untuk melakukan langkah berikutnya dan satu menit lagi untuk memuat variabel.

Saya menjalankan Xcode pada Mac mini 2018 dengan RAM 3,2 GHz i7 dan 32 GB. Saya telah menggunakan Xcode 10 pada mesin yang sama sebelumnya tanpa masalah.


Mencari "Xcode slow" akan menampilkan banyak utas dan solusi yang mungkin tentu saja. Dari tahun-tahun saya sebagai Pengembang iOS, saya tahu bahwa Xcode tidak pernah menjadi program tercepat dan stabil. Namun tidak pernah seburuk sekarang.

Sayangnya tidak ada trik yang tahu (memulai ulang Xcode atau Mac, membersihkan proyek, membersihkan folder perpustakaan Xcode, dll. Yang berpengaruh,

Jadi pertanyaan besarnya adalah:

Apakah ini masalah yang diketahui di Xcode 11? Apakah ada solusi yang diketahui?


Sebagai permulaan, versi stabil terbaru dari Xcode adalah 11A1027, bukan 11A420a. Saya akan mulai dengan memperbaruinya.
Rafael Francisco

2
Mmh, 11A420a adalah versi terbaru yang tersedia di App Store
Andrei Herford

2
Saya sekarang telah memperbarui ke 11A420a dan masalahnya masih sama.
Andrei Herford

2
Saya mencoba 11.1 (11A1027) - sama
nikans

3
Satu hal yang dapat Anda lakukan adalah mengajukan laporan bug ke Apple. Itulah yang biasanya saya lakukan. Mereka akhirnya membalas. Biasanya mereka meminta info sistem dan mengharuskan Anda menjalankan beberapa diagnostik. Secara umum, Xcode lambat dan saya tidak yakin Apple tahu cara memperbaikinya. Saya menjalankan iMac Pro 10 inti dan Xcode masih sangat lambat.
Ponsel Ben

Jawaban:


26

Saya memiliki masalah yang sama dan baru-baru ini menemukan bahwa saya lupa menonaktifkan diagnostik untuk skema saya

masukkan deskripsi gambar di sini

Buka konfigurasi run Anda -> Kelola skema -> Edit skema -> Jalankan -> tab Diagnostics


7
Terima kasih atas jawabannya. Karena upvote, saya berasumsi bahwa ini memecahkan masalah untuk beberapa pengguna. Namun, dalam kasus saya, tidak ada bedanya sama sekali. Jadi, meskipun ini mungkin membantu dalam beberapa kasus, sayangnya ini bukanlah solusi umum
Andrei Herford

Andrei Bisakah Anda memberikan beberapa metrik kuantitatif apa artinya "menjadi lebih lambat"? Tahukah Anda bahwa pembangunan proyek bahasa campuran dari Swift dan Objective-C umumnya lebih lambat?
Gennadiy Ryabkin

2
Saya pikir itu semua dalam pertanyaan ... Pertama-tama ini tidak ada hubungannya dengan waktu membangun. Seperti yang ditulis sebelumnya: "Mengompilasi proyek dan menjalankannya di simulator atau perangkat tidak masalah. Namun saat mencapai breakpoint, Xcode menjadi lebih atau kurang tidak dapat digunakan"
Andrei Herford

Keren Andrei, tapi jawaban saya tentang debugger. Halaman diagnostik menampilkan pengaturan debugger. Dan tidak ada apa-apa tentang waktu membangun. Khususnya bagian tentang manajemen dan alokasi memori. Cukup periksa ulang nama skema dan konfigurasi Anda.
Gennadiy Ryabkin

Andrei, saya rasa Anda tidak memasang LLDB khusus di atas Xcode 11 Anda yang menyiratkan OS-X terbaru. Ini adalah sesuatu yang spesifik untuk lingkungan Anda. Saya akan merekomendasikan untuk memeriksa ulang semua pengaturan skema sekali lagi.
Gennadiy Ryabkin

1

Saya telah melihat beberapa peningkatan kinerja saat menggunakan perilaku Kompilasi Utuh versus Inkremental. Selain itu berjalan di Mojave dan Catalina keduanya harus menunjukkan masalah kinerja. Khususnya karena pratinjau Canvas dan fitur baru lainnya memerlukan lebih banyak intensitas CPU daripada versi terakhir Xcode, saya berharap kinerja Mojave menjadi lebih rendah saat menggunakan Xcode 11 (karena tidak dioptimalkan untuk versi OS ini). Dengan Catalina dalam Beta, saya berharap untuk melihat masalah tambahan juga. Saya belum mengambil tindakan khusus selain tes mata. Proses awal pada Kompilasi Utuh lambat tetapi tampaknya menjadi lebih baik setelahnya.

Bantuan cepat menyatakan:

Ringkasan

Pengaturan ini mengontrol cara file Swift dalam modul dibangun kembali. * Incremental : Hanya membangun kembali file sumber Swift dalam modul yang sudah usang, menjalankan beberapa proses kompilator sesuai kebutuhan. * Whole Module : Selalu buat ulang semua file sumber Swift dalam modul, dalam satu proses kompilator. Pernyataan

Jenis Nilai SWIFT_COMPILATION_MODE

Pencacahan (String)


4
Waktu kompilasi baik-baik saja, menggunakan breakpoints melalui teleportasi xcode di suatu tempat yang dekat dengan horizon peristiwa dari lubang hitam terdekat.
nikans

2
Sekalipun jawabannya tidak menyelesaikan masalah yang dijelaskan dalam pertanyaan, orang memperhatikan bahwa penulis telah berusaha. Jadi itu seharusnya tidak menjadi alasan untuk penurunan suara besar-besaran, bukan?
Andrei Herford

Incremental sebenarnya adalah pengaturan yang direkomendasikan dalam build debug sekarang (lihat pembicaraan WWDC developer.apple.com/videos/play/wwdc2018/408 ). Mungkin ini tergantung pada proyek ke proyek dasar tetapi kami membangun bersih sedikit lebih lambat (5s) dari keseluruhan modul membangun tetapi sekitar 40% (30s) lebih cepat untuk build tambahan.
Mike Bryant

@nikans waktu kompilasi masih lambat dibandingkan dengan IDE lain dan bahasa lain. Tapi saya harus mengakui yang terburuk adalah debugger.
firetrap

1

Silakan coba hapus centang: Parallelize Build pada setiap target di Edit Scheme . Ini akan menghemat waktu untuk membangun Jika proyek Anda memiliki banyak target.

Edit Skema:

masukkan deskripsi gambar di sini


0

Sudahkah Anda mencoba menjalankan Xcode dalam mode aman? Ini tidak ideal, tapi ini satu-satunya cara agar saya bisa menjalankannya secara efisien. Itu sampai pembaruan Catalina baru-baru ini di mana perangkat saya tidak lagi terdeteksi dalam mode aman. Jadi saya kembali ke titik awal sekarang.


Ternyata perangkat lunak antivirus saya memperlambat segalanya. Menonaktifkannya memecahkan masalah.
Dino

@beefon Saya yakin bahwa Dino mengacu pada mode aman MacOs. Anda dapat membaca lebih lanjut tentang ini di sini: support.apple.com/en-us/HT201262
Bartosz Kunat

0

Saya telah menemukan masalah yang sama dalam dua kasus berbeda:

1) aplikasi tidak diluncurkan oleh Xcode, misalnya, bendera "Tunggu hingga dapat dijalankan" disetel di dalam panel Info dari pengaturan Proses Skema;

2) opsi "Luncurkan karena acara pengambilan latar belakang" dipilih dalam pengaturan skema (tetapi ini bukan default)

Posisi opsi Xcode

Xcode 11.2.1 (11B500)


0

Dalam kasus saya (XCode 11.x, MacOS 10.15.2) saya telah menemukan bahwa kelambatan debugger yang ekstrim hanya dipicu jika saya satu langkah sementara operasi satu langkah lainnya sedang berlangsung , yaitu saya menekan tombol langkah terlalu cepat. Solusi saya saat ini adalah menghindari melakukan itu.

Spekulasi murni tapi mungkin dipicu oleh XCode / LLDB yang mencoba melayani beberapa breakpoint secara bersamaan? Coba hapus semua breakpoint kecuali satu dan lihat apakah itu membantu.

Jika relevan: Saya kebanyakan bekerja dengan C ++ di XCode, dengan sedikit Obj-C di sana-sini. Saya tidak menggunakan Swift sama sekali saat ini.


0

Saya telah berurusan dengan ini selamanya dan akhirnya menemukan jawabannya. Itu adalah baris-baris ini di file ~ / .lldbinit saya:

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

Saya mengomentari baris-baris itu dan sekarang hampir secepat tanpa debugger!


-2

Saya memiliki 238 set breakpoint yang tidak digunakan. Ketika saya menghapusnya, itu cepat lagi (bahkan dengan diagnostik dihidupkan.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.