Sự khác biệt giữa lấy mẫu và định hình trong jVisualVM


158

VisualVM có hai tab riêng biệt để lấy mẫu và định hình. Sự khác biệt giữa lấy mẫu và định hình trong VisualVM là gì?

Câu trả lời:


182

Samplingcó nghĩa là lấy rất nhiều bãi chứa sợi và phân tích dấu vết ngăn xếp. Điều này thường nhanh hơn, không yêu cầu thay đổi thời gian chạy trong mã byte của bạn (có thể phá vỡ nó), nhưng cũng kém chính xác hơn.

Profilingphương tiện instrumenting lớp học và phương pháp của bạn, vì vậy họ "báo cáo" bất cứ khi nào họ đang chạy. Điều này là chính xác hơn, vì nó đếm mọi lời gọi của phương thức cụ, không chỉ những người bị bắt khi kết xuất. Tuy nhiên, thiết bị có nghĩa là mã byte của các lớp của bạn bị thay đổi và điều này có thể phá vỡ chương trình của bạn. Trên thực tế, vì lý do đó, việc sử dụng hồ sơ trên các máy chủ ứng dụng lớn (như JBoss hoặc WebLogic) thường khiến mọi thứ bị chết hoặc treo.


2
Điều đó có nghĩa là hồ sơ chính xác hơn so với lấy mẫu, nhưng nó sẽ tốn nhiều tài nguyên hơn?
Parag

10
Tôi đã thấy rằng Lấy mẫu là quá đủ chính xác mỗi lần tôi sử dụng nó để xác định chính xác các phương pháp thực hiện kém. Cá nhân tôi không bao giờ sử dụng hồ sơ.
Marquez
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.