我正在使用来自JDK 1.6.0_26的VisualVM对在Tomcat下运行的Java Web应用程序进行性能剖析,但VisualVM经常告诉我它没有足够的内存来拍摄快照,并要求我使用-Xmx开关提供更多内存给Netbeans。问题是,我正在Netbeans之外运行VisualVM,那么我该如何为jvisualvm.exe提供JVM参数?
应该能够在%JDK_HOME%\lib\visualvm\etc\visualvm.conf
中修改内存设置。
Xms
和Xmx
位于default_options
行中。
我认为这个方法也可以:
jvisualvm.exe -J-Xmx512m
(或者你需要的任何数量)
在 .exe 命令行上使用 -J 进行一次性设置,或者在其他答案中提到的 .conf 文件用于更改默认值。
jvisualvm.exe -J-Xms256m -J-Xmx1024m
,但在检查进程时,我发现参数未被应用。 - Mike Partridge-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
。 - Kevin Welkerjvisualvm -J-Xms1024m -J-Xmx2048m
而且它起作用了。
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"
/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/lib/visualvm/etc/visualvm.conf
的路径上。 - Shannon更新:
根据@Kranach的评论,新路径为/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf
。在此配置文件中,您可以更改
visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m
为(例如)
visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m
旧答案:对于Mac OSX 10.12+
如果您已从https://visualvm.github.io/download.html下载了visualvm dmg
并将其移动到Applications
目录。您可以在位置Applications/VisualVM.app/Contents/etc/visualvm.conf
下找到配置文件visualvm.conf
。在此配置文件中,您可以更改
visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m
为(例如)
visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m
etc/visualvm.conf
。${VISUALVM}/etc/visualvm.conf
-J-Xms
和-J-Xmx
是正确的选项名称吗?在配置文件中指定时,是否需要使用-J
前缀? - GreenGiant-J-Xms24m
和-J-Xmx256m
,所以我认为这是正确的选项名称。你可以通过谷歌搜索如何格式化visualvm.conf来获取更多信息... - Zack Macomber/usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf
。 - David Moles