如何为VisualVM提供JVM参数?


97

我正在使用JDK 1.6.0_26中的VisualVM来分析在Tomcat下运行的Java Webapp,但是VisualVM经常告诉我它没有足够的内存来拍摄快照,并使用-Xmx开关为Netbeans提供更多的内存。 。问题是,我在Netbeans之外运行VisualVM,那么如何为jvisualvm.exe提供JVM参数?

Answers:


139

应该能够修改中的内存设置 %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xms并且Xmxdefault_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 Macomber

@Zack我的conf文件也一样。只想确认一下,因为您的答案没有-J前缀。
GreenGiant

仅供参考,在Linux(Mint,也可能是Ubuntu)上,它是/usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf
David Moles

53

或者我认为这也可行:

jvisualvm.exe -J-Xmx512m (或您需要的任何数量)

.exe命令行上的-J用于一次性设置,或另一答案中记录的.conf文件用于更改默认值


我无法使它正常工作。我jvisualvm.exe -J-Xms256m -J-Xmx1024m从命令提示符处进行了尝试,并且在检查过程时,可以看到未应用参数。
Mike Partridge 2012年

3
我刚尝试过,它似乎可以附加它。所以,我看到默认192米和为1024米另一个条目。看起来后者优先。什么版本的JDK?
凯文·韦尔克

我正在使用1.6.0_26。使用JConsole检查VisualVM进程时,“ VM Summary”选项卡上的VM arguments部分显示了默认值和我提供的值,但是当使用VisualVM检查自身时,在Overview> JVM arguments中,它仅报告默认值。
Mike Partridge 2012年

我正在使用1.6.0_20,并且看到两行列出了Xmx。第一个是默认值,第二个是新值。可以肯定,我直接从上面的注释中复制了您的命令行。Overview> JVM中的输出包括:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Kevin Welker 2012年

31

我开始

jvisualvm -J-Xms1024m -J-Xmx2048m

而且有效。


我之所以这样,是因为.conf文件的位置已更改,但是仍然可以使用,并且至少在某些其他Java程序上也可以使用。与上述注释相反,对于Mac用户而言,这并不难。世界各地都在使用Google,这将我们带到了这里。
乔治连(George Co)

如以下注释中所述,在jvisualvm内部,当您查看VM args时似乎不起作用,但确实可以。我不再收到OOM错误。
乔治连(George Co)

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"

请让您的答案集中在解决方案上。如果您想添加元信息,请在评论中添加。
马丁·彼得斯

并带有标记为windows的问题,Mac用户很难找到答案。无论如何,请考虑使它成为一个新问题。
马丁·彼得斯

我没有对此职位进行投票,请不要下结论。
马丁·彼得斯

您为什么要对此答案进行不必要的编辑?要获得更多声誉?答案已经集中并且清晰。顺便说一句,您的每一次编辑都给我低分!
aspdeepak

2
我在这里进行了一次编辑,并明确了为什么这样做。如果您想坚持通过标签针对Windows用户的问题添加仅Mac的答案,那很好,但是请保留其中的元信息。您的帖子应仅包含解决方案,而不是投票建议。
马丁·彼得斯

0

对于Mac OSX 10.12+

如果您dmg已从https://visualvm.github.io/download.html下载visualvm 并将其移至该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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.