2009-09-02 27 views
37

Chạy Tomcat thông qua nhật thực hoạt động tốt ở chế độ không gỡ lỗi, nhưng không ở chế độ gỡ lỗi. Khi tôi cố gắng khởi động máy chủ Tomcat trong chế độ gỡ lỗi, đầu ra của giao diện điều khiển trông ổn trong một thời gian, nhưng sau đó bắt đầu làm chậm và cuối cùng chỉ dừng lại, chốt CPU ở 100%. Tôi không nghĩ rằng nó có liên quan, nhưng chỉ trong trường hợp - đây là giao diện điều khiển đầu ra ngay khi nó bắt đầu chậm lại và cuối cùng dừng lại (bằng cách dừng tôi có nghĩa là không có đầu ra bàn giao tiếp nhiều hơn, nhưng vẫn còn 100% cpu).Tăng tốc Tomcat trong chế độ gỡ lỗi với IDE Eclipse

2009-09-02 14:35:30,859 INFO NONE org.springframework.context.weaving.DefaultContextLoadTimeWeaver:72 - Found Spring's JVM agent for instrumentation 
2009-09-02 14:35:49,562 INFO NONE org.springframework.beans.factory.support.DefaultListableBeanFactory:414 - Pre-instantiating singletons in org.s[email protected]ed889d: defining beans [... 
2009-09-02 14:37:31,031 INFO NONE org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean:221 - Building JPA container EntityManagerFactory for persistence unit ... 

tôi đã cố gắng tất cả mọi thứ tôi có thể nghĩ ra để sửa chữa nó:

  • cleanesd tomcat thư mục làm việc
  • khởi động lại eclipse
  • khởi động lại của Windows
  • tươi/làm sạch tất cả các dự án

Lần đầu tiên tôi có điều này m tuần trước bằng cách sử dụng eclipse ganymede. Tôi đã chạy tốt trong chế độ gỡ lỗi trong vài tháng trước khi vấn đề này xảy ra. Tôi đã không thực hiện bất kỳ thay đổi đáng kể nào đối với dự án của chúng tôi sẽ gây ra điều này. Cuối cùng, tôi nâng cấp lên eclipse galileo đã giải quyết được vấn đề của tôi. Bây giờ 2 ngày sau, tôi có cùng một vấn đề trong galileo. Giống như tôi đã nói nó hoạt động tốt trong chế độ không gỡ lỗi. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Tôi nên thêm rằng những thứ khác hoạt động trong chế độ gỡ lỗi - ví dụ như kiểm tra junit, vì vậy nó là một cái gì đó cụ thể để tomcat.

+0

Bạn đã cố dọn dẹp vùng làm việc của mình chưa. Đôi khi điều đó xảy ra với tôi, sau đó tôi sẽ chỉ làm sạch không gian làm việc của tôi. Khi không gian làm việc được làm sạch, nó hoạt động tốt –

+0

FYI - điều này cũng áp dụng cho Intellij IDEA. Chỉ cần thử này với IntelliJ 10 và tôi đã đi từ 7 phút khởi động thời gian cho tomcat 5.5.31 đến 20 giây cho ứng dụng của tôi .... –

Trả lời

126

Tôi đã vượt qua được vấn đề! Khi tôi đã tìm ra, tôi nhớ rằng điều này đã xảy ra trước đó. Tôi xóa tất cả các điểm ngắt của tôi và nó hoạt động tốt. Tôi không biết tại sao điều đó lại gây ra kết quả, nhưng nó hoạt động.

+6

làm việc cho tôi cũng như khi tôi gặp vấn đề này hôm nay – Ayrad

+6

Cảm ơn lời khuyên này, có thể ' t upvote bạn nhiều hơn nữa! =)) –

+0

Đã xảy ra với tôi quá và làm sạch điểm ngắt đã giúp .. Thật kỳ lạ mặc dù .. :) – kane77

15

Tôi chỉ tự mình gặp sự cố này và giải pháp này đã giúp tôi. Tuy nhiên - tôi chỉ có 1 điểm ngắt, thay vì 20+ áp phích khác. Tuy nhiên, điểm ngắt của tôi là một điểm ngắt phương thức và không phải là điểm ngắt dòng - tôi tự hỏi liệu vô số các cuộc gọi phương thức tại khởi động tomcat kết hợp với điểm dừng phương pháp có thể gây ra vấn đề này hay không ... Tôi vừa thử một thử nghiệm nhỏ:

  1. Thiết lập một dòng breakpoint và bắt đầu chế độ gỡ lỗi - 5 giây khởi động (bình thường)
  2. Thiết lập một breakpoint phương pháp và bắt đầu chế độ gỡ lỗi - ..... không sẵn sàng để chờ đợi (> 90 giây).

Tôi đoán đây là vấn đề.

+4

Có, điểm ngắt phương thức và điểm quan sát (điểm ngắt trên trường) nhiều, chậm hơn nhiều so với điểm ngắt dòng. Ủng hộ các điểm ngắt dòng bất cứ khi nào có thể, trừ khi bạn không chắc chắn nguồn bạn đã khớp với lớp bạn đang gỡ lỗi. Ví dụ, đặt một điểm ngắt trên câu lệnh đầu tiên bên trong một phương thức thay vì trên chính chữ ký của phương thức đó. Xem http://stackoverflow.com/a/787753/277307 để tìm hiểu lý do tại sao các điểm ngắt phương thức chậm hơn. –

+0

Cảm ơn @ nodescript1 Tôi biết lý do tại sao nhật thực của tôi chậm và sửa chữa nó. – janwen

1

mức khai thác gỗ Thay đổi mặc định từ:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 

Để:

<root> 
    <level value="OFF" /> 
    <appender-ref ref="ConsoleAppender" /> 
</root> 
3

Tôi có vấn đề này như nhau trong Galileo. Chạy nhanh nhưng thu thập thông tin gỡ lỗi. Nhờ các bài viết trên, tôi đã xóa tất cả các điểm ngắt và khởi động lại Tomcat. Điều đó đã giải quyết vấn đề một cách kỳ diệu. fyi - Tôi đã có 2 điểm ngắt phương thức và các điểm ngắt dòng khác trước đó. Tôi đã làm các xét nghiệm để xác nhận lý thuyết trên về các điểm ngắt phương pháp làm chậm lại. Đây là những gì tôi tìm thấy.Có vẻ như nó không phải là điểm ngắt phương thức, đó là vấn đề là điểm ngắt phương thức vẫn đang hiển thị trong danh sách điểm ngắt trong dạng xem lỗi, nhưng không tồn tại trong mã. Ý tôi là tôi đã thay đổi các tham số của phương thức đó nhưng điểm ngắt cũ với các tham số cũ vẫn tồn tại trong danh sách điểm ngắt. Đó là thủ phạm, khi tôi gỡ bỏ điều đó, các điểm ngắt phương thức khác không làm chậm máy chủ. Vì vậy, có vẻ như nhật thực đang cố gắng tìm kiếm một cái gì đó không tồn tại mà dường như đã làm chậm nó xuống. Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan