JVM bağımsız değişkenlerini VisualVM'ye nasıl sağlayabilirim?


97

Tomcat altında çalışan bir Java web uygulamasının profilini çıkarmak için JDK 1.6.0_26'dan VisualVM kullanıyorum, ancak VisualVM anlık görüntü almak için yeterli belleğe sahip olmadığını ve Netbeans'e daha fazla bellek sağlamak için -Xmx anahtarını kullanmam gerektiğini söylüyor . Sorun şu ki, VisualVM'yi Netbeans dışında çalıştırıyorum, bu yüzden jvisualvm.exe'ye JVM bağımsız değişkenlerini nasıl sağlayabilirim?

Yanıtlar:


141

Hafıza ayarlarını değiştirebilmeli %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmsve Xmxiçindedir default_optionshattı.


2
Açık (benim :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
Jonas N

@Zack Bunu -J-Xmsve -J-Xmxaslında doğru seçenek adları olduklarını onaylayabilir misiniz ? Mı -Jbu conf dosyasında belirtilen zaman önek gerekli?
GreenGiant

@GreenGiant Öyle olup olmadıklarından emin değilim ... visualvm.conf kopyamda, -J-Xms24m& -J-Xmx256mbu yüzden doğru seçenek adları olduğunu varsayıyorum. Muhtemelen daha fazla bilgi için visualvm.conf'u nasıl biçimlendireceğinizi Google'da bulabilirsiniz ...
Zack Macomber

@Zack conf dosyam da aynı. Cevabınızda -Jön ek bulunmadığı için onaylamak istedim .
GreenGiant

Bilginize, Linux'ta (Mint, muhtemelen Ubuntu da) /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf.
David Moles

54

veya bunun da işe yaradığını düşünüyorum:

jvisualvm.exe -J-Xmx512m (veya ihtiyacınız olan miktar ne olursa olsun)

Tek seferlik ayarlar için .exe komut satırında -J veya varsayılanları değiştirmek için diğer yanıtta belirtilen .conf dosyası


Bunu çalıştıramadım. jvisualvm.exe -J-Xms256m -J-Xmx1024mKomut isteminden denedim ve işlemi incelerken argümanların uygulanmadığını görebiliyordum.
Mike Partridge

3
Sadece denedim ve ekliyor gibi görünüyor. Bu yüzden varsayılan 192m'yi ve ayrıca 1024m için başka bir girişi görüyorum. Görünüşe göre ikincisi öncelikli. Hangi JDK sürümü?
Kevin Welker

1.6.0_26 kullanıyorum. VisualVM sürecini incelemek için JConsole kullanırken, VM Özet sekmesindeki VM argümanları bölümü sağladığım varsayılanları ve değerleri gösterir, ancak VisualVM'yi kendi kendini incelemek için kullanırken, Genel Bakış> JVM argümanlarında yalnızca varsayılanları rapor eder.
Mike Partridge

1.6.0_20 kullanıyorum ve Xmx'i listeleyen 2 satır görüyorum. Birincisi varsayılandır ve ikincisi yeni değerdir. Emin olmak için komut satırınızı doğrudan yukarıdaki yorumunuzdan kopyaladım. Genel Bakışta Çıktı> JVM şunları içerir:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
Kevin Welker

32

İle başladım

jvisualvm -J-Xms1024m -J-Xmx2048m

ve işe yaradı.


Bunu beğendim çünkü .conf dosyasının konumu değişti, ancak bu hala çalışıyor ve muhtemelen en azından bazı diğer Java programları için çalışacak. Yukarıdaki yorumların aksine, Mac kullanıcıları için bunu bulmak zor değil. Dünya bizi buraya getiren Google'ı kullanıyor.
George Co

Aşağıdaki yorumlarda belirtildiği gibi, jvisualvm içinde VM argümanlarına baktığınızda çalışmıyor gibi görünüyor ama çalışıyor. Artık OOM hatası almıyorum.
George Co

23

Mac'te bu dosyayı düzenleyerek bunları yapılandırabilirsiniz.

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

Lütfen cevabınızı çözüme odaklayın . Meta bilgi eklemek istiyorsanız, lütfen bunu bir yorumda yapın.
Martijn Pieters

Ve soru etiketli pencerelerle , cevabınızı Mac kullanıcıları için bulmak zor olacak. Yine de yeni bir soru yapmayı düşünün .
Martijn Pieters

Bu gönderiye oy vermedim, lütfen sonuca atlamayın.
Martijn Pieters

Bu yanıta neden gereksiz bir düzenleme yaptınız? Biraz daha itibar kazanmak için mi? Cevap zaten odaklanmış ve çok netti . BTW, yaptığınız düzenlemelerin her birinde düşük bir puan alıyorum!
aspdeepak

2
Yaptığım tek burada düzenlemek ve bunu neden yaptığını o temizlemek yaptı. Windows kullanıcılarını etiketlerle hedefleyen bir soruya yalnızca Mac için bir yanıt eklemekte ısrar etmek istiyorsanız, sorun değil, ancak meta bilgileri bunun dışında tutun; Gönderiniz, oylama tavsiyesi değil, yalnızca çözüm içermelidir.
Martijn Pieters

2

Mac OSX 10.12+ için

Eğer visualvm indirdiyseniz dmggelen https://visualvm.github.io/download.html ve onu taşımış Applicationsdizine. Yapılandırma dosyasını visualvm.confkonumun altında bulabilirsiniz Applications/VisualVM.app/Contents/etc/visualvm.conf. Bu yapılandırma dosyasında,

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

için (örneğin)

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


Mac'imde /Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf
Kranach
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.