5 题: 如何向VisualVM提供JVM参数?

在...创建的问题 Thu, Mar 8, 2012 12:00 AM

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

    
88
5答案                              5 跨度>                         

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

XmsXmx位于default_options行。

    
127
2012-03-05 18:14:05Z
  1. @ MikePartridge - 好抓 - 我会更新正确的路径......
    2012-03-05 18:13:16Z
  2. On(我的副本:) OSX:/System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
    2012-10-05 20:57:07Z
  3. @ Zack你能否确认-J-Xms-J-Xmx实际上是正确的选项名称?在conf文件中指定这些前缀时是否需要-J前缀?
    2013-02-18 16:58:13Z
  4. @ GreenGiant我不确定它们是否存在......在我的visualvm.conf副本中,我有-J-Xms24m& -J-Xmx256m所以我认为这是正确的选项名称。您可以谷歌如何格式化visualvm.conf以获取更多信息...
    2013-02-18 18:50:33Z
  5. @Zack我的conf文件也一样。只是想确认,因为你的答案不包括-J前缀。
    2013-02-18 20:52:16Z
  6. 醇>

或者我认为这也有效:

jvisualvm.exe -J-Xmx512m (或者你需要的任何金额)

一次性设置的.exe命令行上的

-J,或者更改默认值的另一个答案中提到的.conf文件

    
46
2012-03-05 17:27:01Z
  1. 我无法让它工作。我从命令提示符处尝试jvisualvm.exe -J-Xms256m -J-Xmx1024m,在检查进程时,我可以看到参数未应用。
    2012-03-05 17:50:36Z
  2. 我刚尝试了它,它似乎附加了它。所以我看到默认的192m和另一个1024m的条目。看起来后者优先。什么版本的JDK?
    2012-03-05 17:58:04Z
  3. 我正在使用1.6.0_26。使用JConsole检查VisualVM进程时,VM Summary选项卡上的VM参数部分显示我提供的默认值和值,但是当使用VisualVM检查自身时,在Overview>中。 JVM参数仅报告默认值。
    2012-03-05 18:45:39Z
  4. 我正在使用1.6.0_20,我看到列出Xmx的2行。第一个是默认值,后一个是新值。我直接从您的评论中复制了您的命令行,以确定。概述中的输出> JVM包括:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
    2012-03-05 18:52:13Z
  5. 醇>

我从

开始  
jvisualvm -J-Xms1024m -J-Xmx2048m

并且有效。

    
23
2016-11-03 12:17:16Z
  1. 我喜欢这个,因为.conf文件的位置已经改变但是这仍然有效,并且可能适用于至少其他一些Java程序,与上面的评论相反,这是很难找到Mac用户。世界使用Google将我们带到这里。
    2016-10-11 15:05:51Z
  2. 如下面的评论中所述,当您查看VM args时,jvisualvm内部似乎无法正常工作,但确实如此。我不再收到OOM错误。
    2016-10-11 15:28:34Z
  3. 醇>

在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"
    
17
2016-03-27 22:31:34Z
  1. 请保持答案专注于解决方案。如果您想添加元信息,请在评论中这样做。
    2016-03-27 22:31:55Z
  2. 如果问题标记为 windows ,那么你的答案就是很难找到Mac用户。考虑将其作为一个新问题无论如何
    2016-03-27 22:33:24Z
  3. 我没有对这篇文章投票,请不要妄下结论。
    2016-03-28 19:09:45Z
  4. 为什么要对此答案进行不必要的编辑?获得更多声誉?答案已经是专注且清晰。顺便说一句,你的每一次编辑都有我的评分!
    2016-03-29 06:37:23Z
  5. 我在这里做了一次编辑,并明确了我为什么要这样做。如果你想坚持通过标签添加针对Windows用户的问题的麦克风答案,那很好,但保留元信息;你的帖子应该只包含一个解决方案,而不是投票建议。
    2016-03-29 06:57:47Z
  6. 醇>

适用于Mac OSX 10.12 +

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

    
0
2018-04-17 05:19:37Z
来源放置 这里