2012-03-22 17 views
33
java.lang.OutOfMemoryError: Java heap space 
Dumping heap to java_pid2584.hprof ... 
Heap dump file created [106948719 bytes in 4.213 secs] 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 
at java.util.Arrays.copyOf(Arrays.java:2760) 
at java.util.Arrays.copyOf(Arrays.java:2734) 
at java.util.ArrayList.ensureCapacity(ArrayList.java:167) 
at java.util.ArrayList.add(ArrayList.java:351) 
at Main.main(Main.java:15) 

लेकिन जब मैं ग्रहण मेमोरी विश्लेषक के माध्यम से सिर डंप java_pid2584.hprof खोलते हैं, लेकिन वहाँ हमेशा संदेश है:ग्रहण विश्लेषक ग्रहण, लेकिन हमेशा एक आंतरिक त्रुटि आई है?

An internal error occurred during: 
"Parsing heap dump from **\java_pid6564.hprof'".Java heap space 
+4

आप '-Xmx' पैरामीटर बढ़ रही है जब ग्रहण शुरू करने की कोशिश की? –

+0

यदि आपके पास -Xmx निर्दिष्ट करते समय भी "पर्याप्त RAM नहीं है" तो http://stackoverflow.com/questions/7254017/tool-for-analyzing-large-java-heap-dumps में कुछ विचार हैं – rogerdpack

+1

मैं इतनी मेहनत से हँसे जब स्मृति त्रुटि का विश्लेषण करने के मेरे प्रयास विफल हुए क्योंकि उपकरण में पर्याप्त स्मृति नहीं थी। प्रफुल्लित। –

उत्तर

-2

आपको अपने एप्लिकेशन को स्मृति सीमा को कम कर सकते हैं, और उसके बाद फिर से एक डंप ले लो। ग्रहण मेमोरी विश्लेषक डंप फ़ाइल को स्मृति में डालता है - मुझे संदेह है कि आपके ग्रहण में आवेदन की सीमा से कम स्मृति है।

आप विपरीत भी कर सकते हैं और एक्लिप्स के लिए मेमोरी सीमा बढ़ा सकते हैं, लेकिन यदि आपका एप्लिकेशन किसी सर्वर पर काम करता है, तो स्मृति के आकार में मिलान करना मुश्किल होगा।

+0

MAT _not_ में स्मृति में पूर्ण '.hprof' है! मेरे पास मेमोरी डंप हैं जो 3 जीबी बड़े हैं जिन्हें मैं अपने 1 जी ग्रहण उदाहरण में विश्लेषण कर सकता हूं ... –

+0

वास्तव में? लेकिन जब मैं 200 एम। एचआरओफ़ फाइल खोलता हूं, तो हमेशा त्रुटि होती है। – Gavin

+0

मेरा हल बिल्कुल कोडेसी के समान है। मैट हमेशा बड़ी फाइलों के विश्लेषण के साथ समस्याएं हैं। यहां देखें: http://wiki.eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer। "ठीक है, बड़े ढेर डंप का विश्लेषण करने के लिए और भी ढेर स्पेस की आवश्यकता हो सकती है। इसे कुछ और मेमोरी दें" – wojand

59

समस्या यह है कि ग्रहण स्मृति विश्लेषक के पास हीप डंप फ़ाइल खोलने के लिए पर्याप्त ढेर स्थान नहीं है।

आप इस प्रकार की समस्या का समाधान कर सकते हैं:

  1. MemoryAnalyzer.ini फ़ाइल

  2. परिवर्तन डिफ़ॉल्ट -Xmx1024m एक बड़े आकार

+1

आपके उत्तर के लिए धन्यवाद, लेकिन मुझे MemoryAnalyzer.ini फ़ाइल नहीं मिल रही है, स्थान कहां है? – Gavin

+2

यह डिफ़ॉल्ट dir में खोजता है। लेकिन यदि आप ग्रहण प्लगइन का उपयोग कर रहे हैं, तो आपको ग्रहण कॉन्फ़िगरेशन – codeisee

+0

के Xmx1024m को बड़ा करना होगा, लेकिन जब भी मैं eclipse.exe -vmargs का उपयोग कर स्मृति को बड़ा करता हूं तो समस्या अभी भी बाहर निकलती है -Xverify: none -XX : + UseParallelGC -XX: PermSize = 100M -Xms256M -Xmx600M -Duser.language = en – Gavin

-2

एक आंतरिक त्रुटि हुई है के लिए खुला। जावा हीप स्पेस

उत्तर: अपने प्रोजेक्ट वर्क स्पेस पर जाएं खुला .सेटिंग फ़ोल्डर .setting फ़ोल्डर की सभी फ़ाइल हटाएं। के बाद आप संकलन कर सकते हैं अब वहाँ है ढेर अंतरिक्ष की तरह कोई त्रुटि का आनंद लें :)

1

मैं भी यहाँ सब समाधान की कोशिश की, जबकि अभी भी हो रही है वही त्रुटि और कारण ग्रहण के रूप में .hprof फ़ाइल खोलने के लिए कोशिश कर रहा था गलत या अज्ञात फ़ाइल प्रकार/संपादक एसोसिएशन के कारण एक पाठ फ़ाइल।

समाधान: फ़ाइल पर राइट क्लिक करें, इसके साथ खोलें का चयन करें, फिर दूसरों का चयन करें, और एक्सेलिप मेमोरी विश्लेषक का चयन करें।

700 एमबी डंप के साथ काम किया, और लगभग 600 मीटर की ग्रहण ढेर पर 2 जी डंप के साथ काम किया।

19

ध्यान दें कि ओएस एक्स पर, MAT को आवंटित स्मृति को बढ़ाने के लिए, आपको मेमोरी Analyzer.app पर राइट-क्लिक करने और पैकेज सामग्री दिखाने की आवश्यकता है। MemoryAnalyzer.ini फ़ाइल/सामग्री/मैकोज़/के अंतर्गत है।

4

यदि एक्सेप्से से मेमोरी विश्लेषक का उपयोग किया जाता है, तो vm तर्क को -Xmx1024m या उच्चतर में बढ़ाने के लिए अपनी eclipse.ini फ़ाइल को संपादित करें। यह मेरे लिए काम किया। http://wiki.eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer

3

ओएस एक्स 11.5 (एल कैप) पर MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini संशोधित काम नहीं करता है! ऐसा इसलिए है क्योंकि यह MemoryAnalyzer.ini को एक अलग जगह पर ढूंढ रहा है।

अपने कंप्यूटर पर, यह लिए देख रहा था:

MemoryAnalyzer.app/Contents/Eclipse/MemoryAnalyzer.ini लेकिन असली .ini फ़ाइल था: MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini

आपके परिवर्तन प्रभावी होने के लिए, मौजूदा .ini फ़ाइल को नए स्थान पर कॉपी करें।जहां MemoryAnalyzer INI फ़ाइल की तलाश में है

ढूंढने के लिए, आप चला सकते हैं:

sudo su 
cd ...MemoryAnalyzer.app/Contents/MacOS/ 
dtruss ./MemoryAnalyzer 2>&1 | grep ini 
+0

यह एक बहुत अच्छा जवाब है :) यह सहायक था। – devJackie

6

मैक ओएस एक्स एल कैप्टन में ग्रहण में मेमोरी विश्लेषक प्लगइन के लिए एक ही समस्या के लिए समाधान।

मुझे एक ही समस्या का सामना करना पड़ रहा था लेकिन ग्रहण प्लगइन के साथ और मेरे पास एप्लीकेशन फ़ोल्डर में कोई मेमोरी विश्लेषक ऐप नहीं था। मेरे लिए काम किया गया समाधान था:

  1. ग्रहण आइकन पर राइट क्लिक करें और पैकेज सामग्री दिखाएं चुनें।
  2. > सामग्री पर जाएं ग्रहण -Xmx2048m को
  3. ओपन Eclipse.ini
  4. बदलें मूल्य -Xmx1024m
  5. पुनः प्रारंभ ग्रहण
संबंधित मुद्दे