Como forneço argumentos JVM para VisualVM?


97

Estou usando o VisualVM do JDK 1.6.0_26 para criar o perfil de um webapp Java em execução no Tomcat, mas o VisualVM costuma me dizer que não tem memória suficiente para tirar um instantâneo e usar a opção -Xmx para fornecer mais memória ao Netbeans . O problema é que estou executando o VisualVM fora do Netbeans, então, como posso fornecer argumentos JVM para jvisualvm.exe?

Respostas:


139

Deve ser capaz de modificar as configurações de memória em %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmse Xmxestão na default_optionslinha.


2
Em (minha cópia de :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zack Pode confirmar que -J-Xmse -J-Xmxsão realmente os nomes de opções corretas? O -Jprefixo é necessário quando eles são especificados no arquivo conf?
GreenGiant

@GreenGiant Não tenho certeza se eles são ou não ... Em minha cópia do visualvm.conf, eu tenho -J-Xms24me, -J-Xmx256mportanto, presumo que sejam os nomes de opção corretos. Você provavelmente poderia pesquisar no Google como formatar visualvm.conf para mais informações ...
Zack Macomber

@Zack meu arquivo conf é o mesmo também. Só queria confirmar, pois sua resposta não incluiu o -Jprefixo.
GreenGiant

Para sua informação, no Linux (Mint, presumivelmente Ubuntu também) é /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
David Moles

53

ou acho que isso também funciona:

jvisualvm.exe -J-Xmx512m (ou o valor que você precisar)

-J na linha de comando .exe para configurações únicas ou o arquivo .conf anotado na outra resposta para alterar os padrões


Eu não consegui fazer isso funcionar. Tentei jvisualvm.exe -J-Xms256m -J-Xmx1024mno prompt de comando e, ao inspecionar o processo, pude ver que os argumentos não foram aplicados.
Mike Partridge

3
Acabei de experimentar e parece que o anexa. Estou vendo o padrão 192m e também outra entrada para 1024m. Parece que o último tem precedência. Qual versão do JDK?
Kevin Welker

Estou usando 1.6.0_26. Ao usar o JConsole para inspecionar o processo VisualVM, a seção de argumentos da VM na guia Resumo da VM mostra os padrões e os valores que forneci, mas ao usar o VisualVM para se inspecionar, em Visão geral> Argumentos da JVM ele relata apenas os padrões.
Mike Partridge

Estou usando 1.6.0_20 e vejo 2 linhas que listam o Xmx. O primeiro é o padrão e o último é o novo valor. Copiei sua linha de comando diretamente do seu comentário acima, apenas para ter certeza. A saída em Visão geral> JVM inclui:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Kevin Welker

31

Eu comecei com

jvisualvm -J-Xms1024m -J-Xmx2048m

e funcionou.


Eu gosto disso porque a localização do arquivo .conf mudou, mas ainda funciona e provavelmente funcionaria para pelo menos alguns outros programas Java. Ao contrário dos comentários acima, isso não é difícil de encontrar para usuários Mac. O mundo usa o Google que nos traz aqui.
George Co

Conforme observado nos comentários abaixo, dentro do jvisualvm, quando você olha para os args da VM, parece que não está funcionando, mas está. Não recebo mais um erro OOM.
George Co

22

No mac, você pode configurá-los editando este arquivo.

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

Por favor, mantenha sua resposta focada na solução . Se você quiser adicionar meta-informações, faça-o em um comentário.
Martijn Pieters

E com as janelas marcadas com perguntas , será difícil encontrar sua resposta para usuários de Mac. Considere fazer uma nova pergunta de qualquer maneira .
Martijn Pieters

Eu não votei neste post, por favor, não tire conclusões precipitadas.
Martijn Pieters

Por que você faria uma edição desnecessária para esta resposta? Para ganhar mais algumas reputações? A resposta já estava focada e cristalina . BTW, com cada uma das suas edições, estou tendo uma classificação negativa!
aspdeepak

2
Fiz uma edição aqui e deixei claro por que fiz isso. Se você quiser insistir em adicionar uma resposta exclusiva para Mac a uma pergunta dirigida a usuários do Windows por meio de tags, tudo bem, mas mantenha as meta informações fora disso; sua postagem deve conter apenas uma solução, não conselhos de voto.
Martijn Pieters

0

Para Mac OSX 10.12+

Se você baixou o visualvm dmgde https://visualvm.github.io/download.html e o moveu para o Applicationsdiretório. Você pode encontrar o arquivo de configuração visualvm.confno local Applications/VisualVM.app/Contents/etc/visualvm.conf. Neste arquivo de configuração, você pode alterar o

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

para (por exemplo)

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.