Tôi cho rằng câu hỏi có liên quan chặt chẽ đến this nhưng đã đóng và giải pháp dường như không rõ ràng đối với tôi.Tại sao hồ sơ VisualVM Profiler ứng dụng giao diện điều khiển Scala của tôi không?
Tôi đang cố gắng sử dụng VisualVM để lập hồ sơ một giao diện điều khiển ứng dụng Scala của tôi. Tôi làm điều này bằng cách bắt đầu VisualVM, bắt đầu ứng dụng Scala của tôi, mở nút của nó trong VisualVM, đi đến tab "Profiler" và nhấn "CPU". Nút này chuyển sang màu xám trong một thời gian (trong khi trạng thái không bao giờ thay đổi bất kỳ thứ gì từ "không hoạt động"), sau đó quay lại hoạt động nhưng không có dữ liệu lược tả nào xuất hiện.
Ứng dụng thực hiện đọc một số tập tin, xử lý dữ liệu (mất khoảng một phút), đầu ra dữ liệu xuất ra và thoát. Tôi cũng đã thử thêm Thread.sleep(60000)
vào đầu và cuối chương trình để đảm bảo đủ thời gian để VisualVM nắm bắt và thực hiện công việc, không có gì thay đổi.
Không giống với câu hỏi có liên quan tôi đã liên kết với tôi không khởi động ứng dụng của tôi từ Eclipse hoặc bất cứ điều gì khác - Tôi sử dụng sau dòng lệnh để khởi động nó:
java -classpath myapp.jar:lib/* MyApp.Main
tất cả các thư viện (bao gồm cả scala-library.jar
) được đặt trong lib/
. Ứng dụng hoạt động như mong đợi.
Cập nhật:
- Tôi đã thử YourKit Java Profiler 11.0.2 và nó không thành công với
AttachNotSupportedException
. - Tôi đã quản lý với YourKit theo số attaching the agent manually.
- Có vẻ như đáng để nhấn mạnh rằng tôi không chạy ứng dụng từ một IDE (hoặc công cụ xây dựng) cũng như tôi đã sửa đổi bất kỳ tùy chọn JVM nào nhưng đường dẫn lớp. Theo tôi hiểu vấn đề này dường như phụ thuộc vào phiên bản JVM và các vấn đề về người dùng/quyền và. Mục tiêu là để tìm ra cơ chế thực tế của vấn đề và cách để cấu hình tất cả mọi thứ để làm việc.
Các phiên bản của phần mềm được sử dụng:
- YourKit Java Profiler 11.0.2
- VisualVM 1.3.4
- SBT 0.12.3 (để xây dựng nhưng không phải để chạy (Tôi đã thử cả hai thực sự))
- Scala 2.9.2
- Oracle Java 1.7.0_04-B20
- Xubuntu 12.04 Linux 32-bit i386
- Linux kernel 3.2.0-24-generic-pae
Scala tạo một số hướng dẫn JVM khá thú vị. Có thể JVisualVM đang tìm kiếm các mẫu được tạo bởi javac JDK, và đang bị nhầm lẫn bởi các mẫu được tạo bởi scalac. – joev