2009-08-27 25 views
47

Tôi bắt đầu lập trình ở Scala gần đây. Tôi đang tìm kiếm một hồ sơ Scala miễn phí. Đọc từ trang web chính thức của ngôn ngữ đã dẫn tôi đến YourKit, nhưng chương trình không phải là một chương trình miễn phí.Scala profiler?

Googling "scala profiler" không cung cấp cho tôi bất kỳ kết quả có liên quan nào.

Vậy làm cách nào để tôi lập hồ sơ chương trình của mình được viết bằng Scala? Tôi thích một plugin đồ họa cho Netbeans hoặc Eclipse. Nhưng nếu không có điều như vậy, thì một giao diện điều khiển sẽ ổn thôi.

Cảm ơn :)

Trả lời

46

Cho rằng Scala chạy trên nền Java Virtual Machine (JVM), bạn có thể sử dụng công cụ JVMJConsoleVisualVM để cấu hình ứng dụng. Ngoài ra bất kỳ Java profiler nên làm việc (ví dụ YourKit, như bạn đã đề cập)

VisualVM đã được đi kèm với JDK từ 1.6.0_10 và nó được dựa trên NetBeans hồ sơ. Bạn có thể chụp sử dụng bộ nhớ, điểm nóng hiệu suất mã vv:

C:> %JAVA_HOME%\bin\jvisualvm 
+0

Rất cám ơn. Tôi sẽ kiểm tra điều đó ra – Phil

+0

Cảm ơn bạn. Tôi đã tải JVisualVM rồi theo hướng dẫn tại đây https://visualvm.dev.java.net/gettingstarted.html, và nó hoạt động. – Phil

+0

Một vấn đề nữa: Chương trình chỉ hiển thị ở đâu là điểm phát sóng. Làm thế nào để làm cho nó hiển thị trong chế độ "phân cấp"? tức là hàm nào gọi. JVisualVM có thể làm điều đó không? Cảm ơn :) – Phil

9

Tôi đã thử với jvisualvm (cả bên trong và NetBeans bên ngoài) nhưng tôi không thể nhìn thấy bất kỳ cuộc gọi phương pháp scala trong các báo cáo profiling (chỉ tiềm ẩn các thư viện java phương pháp các cuộc gọi). Đối với tôi nó trông giống như một lỗi nhưng tôi có thể đã bỏ lỡ một cái gì đó rõ ràng. Dù sao đây là một báo cáo vấn đề tôi đã viết trên netbeans.org với các chi tiết: 171388

Nếu có ai ở đây đã sử dụng thành công JVISualVM cho mã Scala CPU-profile, vui lòng cho tôi biết.

+0

Tôi đang gặp vấn đề tương tự. Tôi không thấy bất kỳ phương pháp Scala nào. –

+11

Tôi đã có cùng một vấn đề, nhưng nó có thể dễ dàng giải quyết bằng cách nhấp vào "Cài đặt" hộp kiểm trên trang Profiler và cấu hình các mục tiêu và bỏ qua các lớp học đúng cách. Trong trường hợp của tôi, một quy tắc bỏ qua java. * Đã chặn hồ sơ của mã Scala cơ bản – Basilevs

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