Як надати аргументи JVM VisualVM?


97

Я використовую VisualVM з JDK 1.6.0_26 для профілювання веб-програми Java, яка працює під Tomcat, але VisualVM часто говорить мені, що у нього недостатньо пам'яті для створення знімка, а також використовуйте перемикач -Xmx, щоб надати більше пам'яті Netbeans . Проблема в тому, що я запускаю VisualVM за межами Netbeans, так як я можу надати аргументи JVM для jvisualvm.exe?

Відповіді:


139

Має змогу змінити налаштування пам'яті в %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmsі Xmxзнаходяться в default_optionsчерзі.


2
Увімкнено (моя копія :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zack Чи можете ви підтвердити це -J-Xmsта -J-Xmxнасправді є правильними назвами варіантів? Чи -Jпотрібен префікс, коли вони вказані у файлі conf?
GreenGiant

@GreenGiant Я не впевнений, є вони чи ні ... У моїй копії visualvm.conf я маю -J-Xms24mі -J-Xmx256mтому я припускаю, що це правильні імена варіантів. Можливо, ви могли б погуглити, як відформатувати visualvm.conf для отримання додаткової інформації ...
Зак Макомбер

@Zack мій конф-файл теж такий же. Просто хотів підтвердити, оскільки ваша відповідь не включала -Jпрефікс.
GreenGiant

FYI, на Linux (Mint, імовірно також Ubuntu) це /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
Девід Моулз

53

або я думаю, що це теж працює:

jvisualvm.exe -J-Xmx512m (або скільки завгодно вам потрібно)

-J у командному рядку .exe для одноразових налаштувань або файлі .conf, зазначеному в іншій відповіді для зміни за замовчуванням


Я не міг змусити це працювати. Я спробував jvisualvm.exe -J-Xms256m -J-Xmx1024mіз командного рядка, і, перевіряючи процес, я міг переконатися, що аргументи не були застосовані.
Mike Partridge

3
Я просто спробував, і він, здається, додає його. Отже, я бачу 192м за замовчуванням, а також ще один запис на 1024м. Схоже, остання має перевагу. Яка версія JDK?
Кевін Велкер,

Я використовую 1.6.0_26. При використанні JConsole для перевірки процесу VisualVM, розділ аргументів VM на вкладці "Підсумок VM" відображає значення за замовчуванням та значення, які я надав, але при використанні VisualVM для перевірки себе в "Огляд> Аргументи JVM" повідомляє лише про значення за замовчуванням.
Mike Partridge

Я використовую 1.6.0_20, і я бачу 2 рядки зі списком Xmx. Перше - це значення за замовчуванням, а друге - нове значення. Я скопіював ваш командний рядок безпосередньо з вашого коментаря вище, щоб бути впевненим. Результат в Огляді> JVM включає:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Кевін Велкер

31

Я почав з

jvisualvm -J-Xms1024m -J-Xmx2048m

і це спрацювало.


Мені це подобається, оскільки розташування файлу .conf змінилося, але це все ще працює, і, мабуть, буде працювати принаймні для деяких інших програм Java, На відміну від коментарів вище, це не важко знайти для користувачів Mac. Світ використовує Google, який веде нас сюди.
Джордж Ко

Як зазначалося в коментарях нижче, всередині jvisualvm, коли ви дивитесь на аргументи VM, здається, що він не працює, але працює. Я більше не отримую помилку OOM.
Джордж Ко

22

У mac ви можете налаштувати їх, відредагувавши цей файл.

/Applications/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"

Будь ласка, зосередьте свою відповідь на вирішенні . Якщо ви хочете додати метаінформацію, зробіть це в коментарі, будь ласка.
Мартін Пітерс

І з запитаннями, позначеними вікнами , для користувачів Mac важко знайти вашу відповідь. Подумайте про те, щоб все одно поставити це нове запитання .
Мартін Пітерс

Я не голосував за цей пост, будь ласка, не робіть висновків.
Мартін Пітерс

Чому ви зробили непотрібну редакцію цієї відповіді? Щоб отримати ще якусь репутацію? Відповідь була вже цілеспрямованою та кришталево чистою . До речі, з кожним вашим редагуванням у мене знижується рейтинг!
aspdeepak

2
Я зробив тут одне редагування та чітко пояснив, чому я це зробив. Якщо ви хочете наполягати на додаванні відповіді лише для Mac на запитання, спрямоване на користувачів Windows за тегами, це нормально, але уникайте метаінформації; ваша публікація повинна містити лише рішення, а не поради щодо голосування.
Мартін Пітерс

0

Для Mac OSX 10.12+

Якщо ви завантажили visualvm dmgз https://visualvm.github.io/download.html і перенесли його до Applicationsкаталогу. Ви можете знайти файл конфігурації visualvm.confпід місцем розташування Applications/VisualVM.app/Contents/etc/visualvm.conf. У цьому конфігураційному файлі ви можете змінити файл

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

до (наприклад)

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.