Trình gỡ lỗi Xcode 11 cực kỳ chậm - Một sự cố đã biết?


95

Vì tôi đã cập nhật lên phiên bản Xcode mới nhất 11.0 (11A420a) nên việc gỡ lỗi cực kỳ chậm và cồng kềnh.

CHỈNH SỬA: Sau khi cập nhật lên 11.1 GM (11A1027), sự cố vẫn như cũ.

Biên dịch một dự án và chạy nó trong trình mô phỏng hoặc trên một thiết bị không có vấn đề gì. Tuy nhiên, khi đạt đến điểm ngắt, Xcode ít nhiều trở nên không sử dụng được:

  • Việc thực hiện chương trình dừng ngay lập tức khi đạt đến điểm ngắt. Tuy nhiên, Xcode cần đến 30 giây để hiển thị vị trí trong cửa sổ mã và một phút nữa để tải nội dung của dạng xem biến (hiển thị các giá trị và trạng thái của các biến có sẵn tại điểm ngắt).
  • Nếu tôi sử dụng các tính năng Bước vào hoặc Bước qua , phải mất tới một phút để thực hiện bước tiếp theo và một phút nữa để tải các biến.

Tôi đang chạy Xcode trên Mac mini 2018 với i7 3,2 GHz và ram 32 GB. Tôi đã sử dụng Xcode 10 trên cùng một máy trước đây mà không gặp vấn đề gì.


Tất nhiên, tìm kiếm "Xcode chậm" mang đến rất nhiều luồng và các giải pháp khả thi. Từ những năm làm Nhà phát triển iOS, tôi biết rằng Xcode chưa bao giờ là chương trình ổn định và nhanh nhất. Tuy nhiên nó chưa bao giờ tồi tệ như bây giờ.

Thật không may, không một thủ thuật nào biết (khởi động lại Xcode hoặc Mac, dọn dẹp dự án, dọn dẹp các thư mục thư viện Xcode, v.v. có tác dụng gì cả,

Vì vậy, câu hỏi lớn là:

Đây có phải là sự cố đã biết trong Xcode 11 không? Có bất kỳ giải pháp đã biết?


Đối với người mới bắt đầu, phiên bản ổn định mới nhất của Xcode là 11A1027, không phải 11A420a. Tôi sẽ bắt đầu bằng cách cập nhật nó.
Rafael Francisco

2
Mmh, 11A420a là phiên bản mới nhất có sẵn trong App Store
Andrei Herford

2
Bây giờ tôi đã cập nhật lên 11A420a và vấn đề vẫn vậy.
Andrei Herford

2
Tôi đã thử 11.1 (11A1027) - giống nhau
nikans 27/09/19

3
Một điều bạn có thể làm là gửi báo cáo lỗi cho Apple. Đó là những gì tôi thường làm. Cuối cùng họ trả lời. Thông thường, họ yêu cầu thông tin hệ thống và yêu cầu bạn chạy một số chẩn đoán. Nói chung, Xcode chậm và tôi không chắc Apple biết cách khắc phục. Tôi đang chạy trên iMac Pro 10 lõi và Xcode vẫn chạy chậm.
Mobile Ben

Câu trả lời:


26

Tôi cũng gặp vấn đề tương tự và gần đây đã phát hiện ra rằng tôi vừa quên tắt chẩn đoán cho chương trình của mình

nhập mô tả hình ảnh ở đây

Mở cấu hình chạy của bạn -> Quản lý lược đồ -> Chỉnh sửa lược đồ -> Chạy -> tab Chẩn đoán


7
Cảm ơn vì câu trả lời. Do số phiếu ủng hộ, tôi cho rằng điều này đã giải quyết được vấn đề cho một số người dùng. Tuy nhiên, trong trường hợp của tôi, nó không tạo ra bất kỳ sự khác biệt nào. Vì vậy, trong khi giúp sức này trong một số trường hợp nó là không có giải pháp chung không may
Andrei Herford

Andrei Bạn có thể cung cấp một số chỉ số định lượng "trở nên chậm hơn" nghĩa là gì không? Bạn có biết rằng việc xây dựng các dự án ngôn ngữ hỗn hợp của Swift và Objective-C thường chậm hơn không?
Gennadiy Ryabkin

2
Tôi nghĩ tất cả đều nằm trong câu hỏi ... Trước hết, điều này không liên quan gì đến thời gian xây dựng. Theo văn bản trước đây: "Biên soạn một dự án và chạy nó trong mô phỏng hoặc trên một thiết bị được không có vấn đề Tuy nhiên khi đạt một breakpoint Xcode trở nên ít nhiều không sử dụng được"
Andrei Herford

Andrei tuyệt vời, nhưng câu trả lời của tôi về trình gỡ lỗi. Trang chẩn đoán hiển thị cài đặt của trình gỡ lỗi. Và không có gì về thời gian xây dựng. Cụ thể là phần về quản lý và cấp phát bộ nhớ. Chỉ cần kiểm tra lại tên của lược đồ và cấu hình của bạn.
Gennadiy Ryabkin

Andrei, tôi không nghĩ rằng bạn đã cài đặt một LLDB tùy chỉnh trên đầu Xcode 11 của bạn, nghĩa là OS-X mới nhất. Nó là một cái gì đó cụ thể cho môi trường của bạn. Tôi khuyên bạn nên kiểm tra lại tất cả các cài đặt lược đồ một lần nữa.
Gennadiy Ryabkin

1

Tôi đã thấy một số cải tiến về hiệu suất khi sử dụng hành vi Tổng hợp toàn bộ so với Tổng hợp tăng dần. Ngoài ra, việc chạy trên Mojave và Catalina sẽ xuất hiện các vấn đề về hiệu suất. Cụ thể là vì bản xem trước Canvas và các tính năng mới khác yêu cầu cường độ CPU nhiều hơn so với phiên bản Xcode cuối cùng, tôi hy vọng hiệu suất của Mojave sẽ thấp hơn khi sử dụng Xcode 11 (vì nó không được tối ưu hóa cho phiên bản hệ điều hành này). Với việc Catalina đang trong giai đoạn Beta, tôi cũng mong đợi sẽ gặp các vấn đề bổ sung. Tôi đã không thực hiện các biện pháp cụ thể ngoài kiểm tra mắt. Quá trình chạy ban đầu trên Whole Compilation chậm nhưng sau đó dường như sẽ tốt hơn.

Trạng thái trợ giúp nhanh:

Tóm lược

Cài đặt này kiểm soát cách các tệp Swift trong mô-đun được xây dựng lại. * Tăng dần : Chỉ xây dựng lại các tệp nguồn Swift trong mô-đun đã lỗi thời, chạy nhiều quy trình biên dịch nếu cần. * Toàn bộ Mô-đun : Luôn xây dựng lại tất cả các tệp nguồn Swift trong mô-đun, trong một quy trình biên dịch duy nhất. Tờ khai

Loại giá trị SWIFT_COMPILATION_MODE

Liệt kê (Chuỗi)


4
Thời gian biên dịch là ổn, sử dụng các điểm ngắt mặc dù dịch chuyển xcode đến một nơi nào đó gần với chân trời sự kiện của một lỗ đen gần nhất.
nikans 27/09/19

2
Ngay cả khi câu trả lời không giải quyết được vấn đề được mô tả trong câu hỏi, người ta nhận thấy rằng tác giả đã nỗ lực. Vì vậy, đó không phải là một lý do cho các phiếu bầu giảm giá lớn, phải không?
Andrei Herford

Tăng dần thực sự là cài đặt được đề xuất trong các bản dựng gỡ lỗi ngay bây giờ (xem WWDC talk developer.apple.com/videos/play/wwdc2018/408 ). Có thể điều này phụ thuộc vào cơ sở từng dự án nhưng theo chúng tôi, bản dựng sạch sẽ chậm hơn một chút (5 giây) so với bản dựng toàn bộ mô-đun nhưng nhanh hơn khoảng 40% (30 giây) đối với bản dựng tăng dần.
Mike Bryant

@nikans, thời gian biên dịch vẫn còn chậm so với bất kỳ IDE nào khác và các ngôn ngữ khác. Nhưng tôi phải thừa nhận điều tồi tệ nhất đó là trình gỡ lỗi.
firetrap

1

Vui lòng thử bỏ chọn: Xây dựng song song trên từng mục tiêu trong Chỉnh sửa sơ đồ . Nó sẽ tiết kiệm thời gian xây dựng Nếu dự án của bạn có nhiều mục tiêu.

Chỉnh sửa lược đồ:

nhập mô tả hình ảnh ở đây


0

Bạn đã thử chạy Xcode ở chế độ an toàn chưa? Nó không phải là lý tưởng, nhưng đây là cách duy nhất tôi có thể làm cho nó chạy hiệu quả. Đó là cho đến khi cập nhật Catalina gần đây, thiết bị của tôi không còn được phát hiện ở chế độ an toàn nữa. Vì vậy, tôi trở lại hình vuông bây giờ.


Hóa ra đó là phần mềm chống vi-rút của tôi làm chậm mọi thứ. Vô hiệu hóa nó đã giải quyết được vấn đề.
Dino

@beefon Tôi tin rằng Dino đang đề cập đến chế độ an toàn của MacO. Bạn có thể đọc thêm về nó tại đây: support.apple.com/en-us/HT201262
Bartosz Kunat

0

Tôi đã tìm thấy các vấn đề giống nhau trong hai trường hợp khác nhau:

1) ứng dụng không được khởi chạy bởi Xcode, tức là cờ "Chờ tệp thực thi được khởi chạy" được đặt bên trong bảng Thông tin của cài đặt Chạy Đề án;

2) tùy chọn "Khởi chạy do sự kiện tìm nạp nền" được chọn trong cài đặt lược đồ (nhưng đây không phải là mặc định)

Vị trí tùy chọn Xcode

Xcode 11.2.1 (11B500)


0

Trong trường hợp của tôi (XCode 11.x, MacOS 10.15.2) Tôi thấy rằng trình gỡ lỗi quá chậm chỉ được kích hoạt nếu tôi thực hiện một bước trong khi một thao tác một bước khác đang diễn ra , tức là tôi nhấn nút bước quá nhanh. Cách giải quyết hiện tại của tôi là tránh làm điều đó.

Suy đoán thuần túy nhưng có lẽ nó được kích hoạt bởi XCode / LLDB cố gắng phục vụ nhiều điểm ngắt đồng thời? Hãy thử xóa tất cả các điểm ngắt, trừ một điểm và xem điều đó có giúp ích được gì không.

Trong trường hợp nó có liên quan: Tôi chủ yếu làm việc với C ++ trong XCode, với một chút Obj-C ở đây và ở đó. Tôi không sử dụng Swift hiện tại.


0

Tôi đã đối phó với điều này mãi mãi và cuối cùng đã tìm ra nó. Đó là những dòng này trong tệp ~ / .lldbinit của tôi:

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

Tôi đã nhận xét những dòng đó và bây giờ nó gần như nhanh như không có trình gỡ lỗi!


-2

Tôi đã đặt 238 điểm ngắt không sử dụng. Khi tôi xóa chúng, nó nhanh trở lại (ngay cả khi đã bật chẩn đoán).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.