Tôi muốn lọc những lớp nào đang được định dạng bằng cpu trong Java VisualVm (Phiên bản 1.7.0 b110325). Đối với điều này, tôi đã thử theo Profiler -> Settings -> CPU-Settings để thiết lập "Profile chỉ lớp học" để gói của tôi theo thử nghiệm, mà không có hiệu lực. Sau đó, tôi đã cố gắng loại bỏ tất cả các lớp học java. * Và sun. * Bằng cách đặt chúng trong "Không phải lớp hồ sơ", cũng không có tác dụng.Có các lớp lọc cho công việc định dạng cpu trong Java VisualVM không?
Đây có phải đơn giản là lỗi không? Hay tôi đang thiếu một cái gì đó? Có cách giải quyết nào không? Ý tôi là khác hơn:
- trả tiền cho một hồ sơ tốt hơn
- làm lấy mẫu bằng tay (xem One could use a profiler, but why not just halt the program?)
- chuyển sang xem Gọi Tree, đó là không tốt vì chỉ có quan điểm Profiler mang lại cho tôi tỷ lệ phần trăm của CPU tiêu thụ cho mỗi phương pháp.
Tôi muốn thực hiện điều này chủ yếu để lấy tỷ lệ phần trăm chính xác của CPU đã tiêu thụ cho mỗi phương pháp. Đối với điều này, tôi cần phải loại bỏ các phép đo gây phiền nhiễu, ví dụ: cho sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run()
(khoảng 70%). Nhiều người dùng dường như gặp sự cố này, xem ví dụ:
- Java VisualVM giving bizarre results for CPU profiling - Has anyone else run into this?
- rmi.transport.tcp.tcptransport Connectionhandler consumes much CPU
- Can't see my own application methods in Java VisualVM.
Mục đích của bạn là làm cho mã chạy nhanh nhất có thể? hoặc chỉ để có được một số tỷ lệ phần trăm, bất kể ý nghĩa của chúng là gì? "Thời gian" như thường được sử dụng, rất mơ hồ. –
Vâng, mục tiêu chính của tôi là làm cho mã chạy nhanh hơn. Tôi cũng muốn có ước tính về số lượng mã nên thay đổi. Vì vậy, tôi muốn có được một cái nhìn tổng quát về tất cả các điểm nóng và mức độ nghiêm trọng của chúng. Tôi nghĩ rằng kết quả của VisualVm sẽ được chấp nhận cho điều này mặc dù sử dụng thời gian tường - nếu chỉ có vài mặt trời. * Và java. * Lớp học sẽ không mess up tất cả các số liệu thống kê. – DaveFar