Làm cách nào để cung cấp các đối số JVM cho VisualVM?


97

Tôi đang sử dụng VisualVM từ JDK 1.6.0_26 để lập hồ sơ ứng dụng web Java chạy dưới Tomcat, nhưng VisualVM thường nói với tôi rằng nó không có đủ bộ nhớ để chụp nhanh và sử dụng công tắc -Xmx để cung cấp thêm bộ nhớ cho Netbeans . Vấn đề là, tôi đang chạy VisualVM bên ngoài Netbeans, vậy làm cách nào tôi có thể cung cấp các đối số JVM cho jvisualvm.exe?

Câu trả lời:


139

Có thể sửa đổi cài đặt bộ nhớ trong %JDK_HOME%\lib\visualvm\etc\visualvm.conf

XmsXmxđang trong default_optionsdòng.


2
Bật (bản sao của tôi :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zack Bạn có thể xác nhận điều đó -J-Xms-J-Xmxcó thực sự là tên tùy chọn chính xác không? Là -Jtiền tố cần thiết khi chúng được quy định trong file conf?
GreenGiant

@GreenGiant Tôi không chắc liệu chúng có phải hay không ... Trong bản sao visualvm.conf của tôi, tôi có -J-Xms24m& -J-Xmx256mvì vậy tôi cho rằng đó là tên tùy chọn chính xác. Bạn có thể có thể google cách định dạng visualvm.conf để biết thêm ...
Zack Macomber

@Zack tệp conf của tôi cũng vậy. Chỉ muốn xác nhận vì câu trả lời của bạn không bao gồm -Jtiền tố.
GreenGiant

FYI, trên Linux (Mint, có lẽ là cả Ubuntu) /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
David Moles

53

hoặc tôi nghĩ điều này cũng hoạt động:

jvisualvm.exe -J-Xmx512m (hoặc bất kỳ số tiền nào bạn cần)

-J trên dòng lệnh .exe cho cài đặt một lần hoặc tệp .conf được ghi chú trong câu trả lời khác để thay đổi giá trị mặc định


Tôi không thể làm cho nó hoạt động. Tôi đã thử jvisualvm.exe -J-Xms256m -J-Xmx1024mtừ dấu nhắc lệnh và khi kiểm tra quy trình, tôi có thể thấy rằng các đối số không được áp dụng.
Mike Partridge

3
Tôi vừa thử nó và nó xuất hiện để nối thêm. Vì vậy, tôi nhìn thấy những 192m mặc định và cũng một mục nhập cho 1024M. Có vẻ như cái sau được ưu tiên hơn. JDK phiên bản nào?
Kevin Welker

Tôi đang sử dụng 1.6.0_26. Khi sử dụng JConsole để kiểm tra quá trình VisualVM, phần đối số VM trên tab Tóm tắt VM hiển thị các giá trị mặc định và tôi đã cung cấp, nhưng khi sử dụng VisualVM để kiểm tra chính nó, trong Tổng quan> Đối số JVM, nó chỉ báo cáo các giá trị mặc định.
Mike Partridge

Tôi đang sử dụng 1.6.0_20 và tôi thấy 2 dòng liệt kê Xmx. Giá trị đầu tiên là giá trị mặc định và giá trị thứ hai là giá trị mới. Tôi đã sao chép dòng lệnh của bạn trực tiếp từ nhận xét của bạn ở trên chỉ để chắc chắn. Đầu ra trong Tổng quan> JVM bao gồm:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Kevin Welker

31

Tôi bắt đầu với

jvisualvm -J-Xms1024m -J-Xmx2048m

va no đa hoạt động.


Tôi thích điều này vì vị trí của tệp .conf đã thay đổi nhưng điều này vẫn hoạt động và có lẽ sẽ hoạt động cho ít nhất một số chương trình Java khác, Trái ngược với các nhận xét ở trên, điều này không khó tìm đối với người dùng Mac. Thế giới sử dụng Google để đưa chúng ta đến đây.
George Co

Như đã lưu ý trong các bình luận bên dưới, bên trong jvisualvm khi bạn nhìn vào VM args, có vẻ như nó không hoạt động nhưng nó có. Tôi không còn gặp lỗi OOM nữa.
George Co

22

Trong mac, bạn có thể định cấu hình chúng bằng cách chỉnh sửa tệp này.

/Application/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf

visualvm_default_options="-J-client -J-Xms4096m -J-Xmx5120m -J-XX:+IgnoreUnrecognizedVMOptions -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true"

Hãy giữ câu trả lời của bạn tập trung vào giải pháp . Nếu bạn muốn thêm thông tin meta, hãy làm như vậy trong một bình luận.
Martijn Pieters

Và với các cửa sổ được gắn thẻ câu hỏi , câu trả lời của bạn sẽ khó tìm thấy đối với người dùng Mac. Xem xét làm cho nó một câu hỏi mới nào .
Martijn Pieters

Tôi đã không bỏ phiếu cho bài đăng này, xin đừng vội kết luận.
Martijn Pieters

Tại sao bạn lại thực hiện một chỉnh sửa không cần thiết cho câu trả lời này? Để đạt được một số danh tiếng hơn? Câu trả lời đã được tập trung và rõ ràng . BTW, với mỗi chỉnh sửa của bạn, tôi sẽ bị đánh giá thấp!
aspdeepak

2
Tôi đã thực hiện một chỉnh sửa ở đây và nói rõ tại sao tôi lại làm như vậy. Nếu bạn muốn nhấn mạnh vào việc thêm câu trả lời chỉ dành cho Mac cho một câu hỏi nhắm đến người dùng Windows bằng các thẻ, điều đó tốt, nhưng hãy giữ thông tin meta khỏi nó; bài đăng của bạn chỉ nên chứa một giải pháp, không phải lời khuyên biểu quyết.
Martijn Pieters

0

Đối với Mac OSX 10.12+

Nếu bạn đã tải xuống visualvm dmgtừ https://visualvm.github.io/download.html và đã chuyển nó vào Applicationsthư mục. Bạn có thể tìm thấy tệp cấu hình visualvm.confdưới vị trí Applications/VisualVM.app/Contents/etc/visualvm.conf. Trong tệp cấu hình này, bạn có thể thay đổi

visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m

đến (ví dụ)

visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m

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.