Trình gỡ lỗi Intellij chậm: Các điểm ngắt phương pháp có thể làm chậm quá trình gỡ lỗi một cách đáng kể


81

Khi tôi khởi động trình gỡ lỗi intellij, bạn có thể thấy gợi ý trong ảnh chụp màn hình. trình gỡ lỗi mất rất nhiều thời gian để khởi động. Làm thế nào để giải quyết vấn đề này?nhập mô tả hình ảnh ở đây

Câu trả lời:


179

Tắt các điểm ngắt của phương thức. Bạn có thể xem tất cả các điểm ngắt của mình thông qua Run | Xem các điểm ngắt (Ctrl - Shift -F8)


24
Nhưng chắc chắn việc loại bỏ các điểm ngắt của bạn làm mất đi mục đích của việc gỡ lỗi? Hoặc tôi đang thiếu một cái gì đó.
arush436

14
@ arush436 Số lượng trường hợp bạn cần "điểm ngắt phương thức" (! = điểm ngắt thông thường) là rất hạn chế.
Robin

27
Và sự khác biệt giữa điểm ngắt phương thức và điểm ngắt thông thường là gì?
jrahhali


2
Đây là một liên kết cập nhật đến các loại điểm ngắt khác nhau .
Cameron

11

Trong IDEA 2017.1 Điểm ngắt phương thức giả lập đã được giới thiệu: https://www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint Chúng cho phép sử dụng điểm ngắt phương thức mà không bị phạt. Được bật theo mặc định.


Nếu bạn thấy thông báo này, bạn có thể đã (giống như tôi) đã nhấp vào "Hủy mô phỏng" trên một cửa sổ bật lên. Để bật lại nó, hãy chuyển đến điểm ngắt trong các điểm ngắt hiển thị và chọn "Đã mô phỏng".
Captain Man

7

Từ Nhóm JetBrains: "Các điểm ngắt phương thức sẽ làm chậm trình gỡ lỗi rất nhiều vì thiết kế JVM, chúng rất tốn kém để đánh giá. Hãy loại bỏ các điểm ngắt phương thức và xem xét sử dụng các điểm ngắt dòng thông thường". Xem thêm .

Để thực hiện ngắn câu chuyện dài, có vẻ như vấn đề gốc rễ là Phương pháp Breakpoints được thực hiện bằng cách sử dụng JPDA 's Phương pháp nhập cảnh & Phương pháp Thoát tính năng. Việc triển khai này yêu cầu JVM kích hoạt một sự kiện mỗi khi bất kỳ luồng nào nhập vào bất kỳ phương thức nào và khi bất kỳ luồng nào thoát khỏi bất kỳ phương thức nào .


5

Tìm các biểu tượng hình thoi màu đỏ (không phải vòng tròn màu đỏ) trong mã của bạn, những biểu tượng này đại diện cho các điểm ngắt của phương pháp. Có lẽ hầu hết bạn đặt chúng tại phương thức get () / set () trong Kotlin.


5

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

Tắt điểm ngắt phương thức từ bảng gỡ lỗi. Đây là một ảnh chụp màn hình.


0

Lời khuyên thực tế mà tôi làm theo: 1. tắt tiếng tất cả các điểm ngắt trong khi ứng dụng sắp ra mắt 2. chỉ bật các điểm ngắt trong khi gỡ lỗi luồng đó.

Tất nhiên, sẽ không hữu ích nếu bạn đang cố gắng gỡ lỗi điều gì đó xảy ra trong quá trình khởi động ứng dụng.

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.