मैं विजुअल वीवी को जेवीएम तर्क कैसे प्रदान करूं?


97

मैं JDK 1.6.0_26 से VisualVM का उपयोग कर रहा हूं, तो Tomcat के तहत चलने वाले Java webapp को प्रोफाइल करने के लिए, लेकिन VisualVM अक्सर मुझे बताता है कि इसमें स्नैपशॉट लेने के लिए पर्याप्त मेमोरी नहीं है, और Netbeans को अधिक मेमोरी प्रदान करने के लिए -Xmx स्विच का उपयोग करना है। । समस्या यह है, मैं Netbeans के बाहर VisualVM चला रहा हूं, इसलिए मैं jvisualvm.exe को JVM तर्क कैसे प्रदान कर सकता हूं?

जवाबों:


139

में मेमोरी सेटिंग्स को संशोधित करने में सक्षम होना चाहिए %JDK_HOME%\lib\visualvm\etc\visualvm.conf

Xmsऔर Xmxमें हैं default_optionsलाइन।


2
ऑन (मेरी प्रति :) :) OSX: /System/Library/Java/Support/VisualVM.bundle/Contents/Home/etc/visualvm.conf
जोनास एन

@Zack क्या आप इसकी पुष्टि कर सकते हैं -J-Xmsऔर -J-Xmxवास्तव में सही विकल्प नाम हैं? क्या -Jइन फ़ाइलों को निर्दिष्ट फ़ाइल में निर्दिष्ट करने पर उपसर्ग आवश्यक है?
ग्रीनजाइंट

@GreenGiant मुझे यकीन नहीं है कि वे हैं या नहीं ... Visualvm.conf की मेरी प्रति में, मेरे पास है -J-Xms24mऔर -J-Xmx256mइसलिए मुझे लगता है कि सही विकल्प नाम हैं। आप शायद अधिक जानकारी के लिए visualvm.conf को कैसे फॉर्मेट कर सकते हैं ...
Zack Macomber

@ मेरी गोपनीय फ़ाइल समान है। केवल इस बात की पुष्टि करना चाहता था कि आपके उत्तर में -Jउपसर्ग शामिल नहीं था ।
ग्रीनजाइंट

FYI करें, लिनक्स पर (टकसाल, संभवतः उबंटू भी) /usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf
डेविड मोल्स

53

या मुझे लगता है कि यह भी काम करता है:

jvisualvm.exe -J-Xmx512m (या आपको जो भी राशि चाहिए)

-जीवन सेटिंग्स के लिए .exe कमांड लाइन पर जे।, या .conf फ़ाइल को चूक को बदलने के लिए अन्य उत्तर में नोट किया गया है


मुझे यह काम नहीं मिला। मैंने jvisualvm.exe -J-Xms256m -J-Xmx1024mकमांड प्रॉम्प्ट से कोशिश की , और जब प्रक्रिया का निरीक्षण किया, तो मैं देख सकता था कि तर्क लागू नहीं किए गए थे।
माइक पार्टरिज

3
मैंने अभी इसकी कोशिश की और यह इसे बढ़ाता हुआ प्रतीत होता है। इसलिए मैं डिफ़ॉल्ट 192m और दिखाई दे रही है भी 1024M के लिए एक और प्रवेश। ऐसा लगता है कि उत्तरार्द्ध पूर्वता लेता है। क्या संस्करण JDK?
केविन वेलकर

मैं 1.6.0_26 का उपयोग कर रहा हूं। VisualVM प्रक्रिया का निरीक्षण करने के लिए JConsole का उपयोग करते समय, VM सारांश टैब पर VM तर्क अनुभाग डिफ़ॉल्ट और मेरे द्वारा प्रदान किए गए मानों को दिखाता है, लेकिन जब VisualVM का उपयोग खुद का निरीक्षण करने के लिए करता है, अवलोकन> JVM तर्क में केवल डिफ़ॉल्ट को रिपोर्ट करता है।
माइक पार्टरिज

मैं 1.6.0_20 का उपयोग कर रहा हूं, और मुझे 2 लाइनें दिखाई देती हैं जो Xmx को सूचीबद्ध करती हैं। पहला डिफ़ॉल्ट है, और बाद वाला नया मान है। मैंने आपकी कमांड लाइन को सीधे आपकी टिप्पणी से कॉपी किया है ताकि कुछ निश्चित हो सके। अवलोकन में आउटपुट> JVM में शामिल हैं:-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
केविन वेलकर

31

मैंने शुरुआत की

jvisualvm -J-Xms1024m -J-Xmx2048m

और यह काम किया।


मुझे यह पसंद है क्योंकि .conf फ़ाइल का स्थान बदल गया है, लेकिन यह अभी भी काम करता है और संभवतः कम से कम कुछ अन्य जावा कार्यक्रमों के लिए काम करेगा, इसके विपरीत टिप्पणियों के विपरीत मैक उपयोगकर्ताओं के लिए खोजना मुश्किल नहीं है। दुनिया Google का उपयोग करती है जो हमें यहां लाता है।
जॉर्ज सह

जैसा कि नीचे टिप्पणी में कहा गया है, jvisualvm के अंदर जब आप वीएम को देखते हैं तो ऐसा लगता है कि यह काम नहीं कर रहा है लेकिन यह करता है। मुझे अब OOM त्रुटि नहीं मिली।
जॉर्ज सह

22

मैक में, आप उन्हें इस फ़ाइल को संपादित करके कॉन्फ़िगर कर सकते हैं।

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

कृपया अपने उत्तर को समाधान पर केंद्रित रखें । यदि आप मेटा-जानकारी जोड़ना चाहते हैं, तो कृपया एक टिप्पणी में ऐसा करें।
मार्टिन पीटर्स

और प्रश्न टैग की गई खिड़कियों के साथ , आपका जवाब मैक उपयोगकर्ताओं को खोजने के लिए कठिन हो रहा है। वैसे भी इसे एक नया प्रश्न बनाने पर विचार करें ।
मार्टिन पीटर्स

मैंने इस पद पर वोट नहीं दिया, कृपया निष्कर्ष पर न जाएं।
मार्टिन पीटर्स

आप इस उत्तर के लिए अनावश्यक संपादन क्यों करेंगे? कुछ और प्रतिष्ठा हासिल करने के लिए? जवाब पहले से ही केंद्रित था और क्रिस्टल स्पष्ट था । BTW, आपके प्रत्येक संपादन के साथ मैं डाउन रेटिंग कर रहा हूँ!
एस्पदीपक

2
मैंने यहाँ एक संपादन किया है, और यह स्पष्ट किया है कि मैंने ऐसा क्यों किया। यदि आप टैग द्वारा विंडोज उपयोगकर्ताओं के उद्देश्य से एक प्रश्न के लिए केवल मैक जवाब जोड़ने पर जोर देना चाहते हैं, तो यह ठीक है, लेकिन मेटा जानकारी इससे बाहर रखें; आपकी पोस्ट में केवल एक समाधान होना चाहिए, वोटिंग सलाह नहीं।
मार्टिन पीटर्स

0

मैक OSX 10.12+ के लिए

यदि आपने https://visualvm.github.io/download.htmldmg से visualvm डाउनलोड किया है और इसे निर्देशिका में स्थानांतरित कर दिया है । आप स्थान के तहत कॉन्फ़िगरेशन फ़ाइल पा सकते हैं । इस कॉन्फ़िगरेशन फ़ाइल में, आप बदल सकते हैंApplicationsvisualvm.confApplications/VisualVM.app/Contents/etc/visualvm.conf

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

करने के लिए (उदाहरण के लिए)

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.