Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÉîÈëÀí½âJVMÖ®ÄÚ´æÇøÓòÓëÄÚ´æÒç³ö
 
À´Ô´£ºwustrive's blog ·¢²¼ÓÚ 2016-11-2
  2041  次浏览      27
 

ÎÄÕÂĿ¼

1. JavaÄÚ´æÇøÓòÓëÄÚ´æÒç³öÒì³£

1.1. ÔËÐÐʱÊý¾ÝÇøÓò

1.1.1. ³ÌÐò¼ÆÊýÆ÷

1.1.2. javaÐéÄâ»úÕ»

1.1.3. ±¾µØ·½·¨Õ»

1.1.4. Java¶Ñ(Java Heap)

1.1.5. ·½·¨Çø

1.1.6. ÔËÐÐʱ³£Á¿³Ø

1.1.7. Ö±½ÓÄÚ´æ

1.2. HotSpotÐéÄâ»ú

1.2.1. ¶ÔÏóµÄ´´½¨

1.2.2. ¶ÔÏóµÄ·ÃÎʶ¨Î»

1.3. OOMÒì³£µÄ½â¾ö˼·

1.4. ²Î¿¼

JavaÄÚ´æÇøÓòÓëÄÚ´æÒç³öÒì³£

ÔËÐÐʱÊý¾ÝÇøÓò

ÉîÈëÀí½âjvmÖ®ÄÚ´æÇøÓòÓëÄÚ´æÒç³ö

³ÌÐò¼ÆÊýÆ÷

µ±Ç°Ïß³ÌËùÖ´ÐеÄ×Ö½ÚÂëµÄÐкÅָʾÆ÷

µ±Ç°Ïß³Ì˽ÓÐ

²»»á³öÏÖOutOfMemoryErrorÇé¿ö

javaÐéÄâ»úÕ»

Ïß³Ì˽ÓУ¬ÉúÃüÖÜÆÚÓëÏß³ÌÏàͬ

java·½·¨Ö´ÐеÄÄÚ´æÄ£ÐÍ£¬Ã¿¸ö·½·¨Ö´ÐеÄͬʱ¶¼»á´´½¨Ò»¸öÕ»Ö¡£¬´æ´¢¾Ö²¿±äÁ¿±í(»ù±¾ÀàÐÍ¡¢¶ÔÏóÒýÓÃ)¡¢²Ù×÷ÊýÕ»¡¢¶¯Ì¬Á´½Ó¡¢·½·¨³ö¿ÚµÈÐÅÏ¢

StackOverflowErrorÒì³££ºµ±Ïß³ÌÇëÇóµÄÕ»Éî¶È´óÓÚÐéÄâ»úËùÔÊÐíµÄÉî¶È

OutOfMemoryErrorÒì³££ºÈç¹ûÕ»µÄÀ©Õ¹Ê±ÎÞ·¨ÉêÇëµ½×ã¹»µÄÄÚ´æ

±¾µØ·½·¨Õ»

ÓëÐéÄâ»úÕ»ÏàËÆ£¬Ö÷ҪΪÐéÄâ»úʹÓõ½µÄNative·½·¨·þÎñ£¬ÔÚHotSpotÐéÄâ»úÖÐÖ±½Ó°Ñ±¾µØ·½·¨Õ»ÓëÐéÄâ»úÕ»¶þºÏÒ»

Java¶Ñ(Java Heap)

java¶ÑÊDZ»ËùÓÐÏ̹߳²ÏíµÄÒ»¿éÄÚ´æÇøÓò£¬ÔÚ ÐéÄâ»úÆô¶¯Ê±´´½¨¡£´ËÇøÓòµÄΨһĿµÄ¾ÍÊÇ´æ´¢¶ÔÏóʵÀý¡£java¶ÑÊÇÀ¬»øÊÕ¼¯Æ÷¹ÜÀíµÄÖ÷񻂿Óò¡£java¶Ñ»¹¿ÉÒÔϸ·ÖΪ£ºÐÂÉú´úÓëÀÏÄê´ú¡£ÔÚϸһµãÓÐ Eden¿Õ¼ä¡¢Form Survivor¿Õ¼ä¡¢To Survivor¿Õ¼äµÈ¡£

¿ÉÒÔͨ¹ý-XmxºÍ-Xms¿ØÖƶѵĴóС

OutOfMemoryErrorÒì³££ºµ±ÔÚ¶ÑÖÐûÓÐÄÚ´æÍê³ÉʵÀý·ÖÅ䣬ÇÒ¶ÑÒ²ÎÞ·¨ÔÙÀ©Õ¹Ê±¡£

·½·¨Çø

Ï̼߳乲Ïí

ÓÃÓÚ´æ´¢Òѱ»ÐéÄâ»ú¼ÓÔØµÄÀàÐÅÏ¢¡¢³£Á¿¡¢¾²Ì¬±äÁ¿¡¢¼´Ê±±àÒëÆ÷±àÒëºóµÄ´úÂëµÈÊý¾Ý

OutOfMemoryErrorÒì³££ºµ±·½·¨ÇøÎÞ·¨Âú×ãÄÚ´æµÄ·ÖÅäÐèÇóʱ

ÔËÐÐʱ³£Á¿³Ø

·½·¨ÇøµÄÒ»²¿·Ö

ÓÃÓÚ´æ·Å±àÒëÆÚÉú³ÉµÄ¸÷ÖÖ×ÖÃæÁ¿Óë·ûºÅÒýÓÃ

OutOfMemoryErrorÒì³££ºµ±³£Á¿³ØÎÞ·¨ÔÙÉêÇëµ½ÄÚ´æÊ±

Ö±½ÓÄÚ´æ

NIO¿ÉÒÔʹÓÃNativeº¯Êý¿âÖ±½Ó·ÖÅä¶ÑÍâÄڴ棬¶ÑÖеÄDirectByteBuffer¶ÔÏó×÷ΪÕâ¿éÄÚ´æµÄÒýÓýøÐвÙ×÷

´óС²»ÊÜJava¶Ñ´óСµÄÏÞÖÆ£¬Êܱ¾»ú(·þÎñÆ÷)ÄÚ´æÏÞÖÆ

OutOfMemoryErrorÒì³££ºÏµÍ³ÄÚ´æ²»×ãʱ

HotSpotÐéÄâ»ú

¶ÔÏóµÄ´´½¨

ÐéÄâ»úÓöµ½Ò»ÌõnewÖ¸Áîʱ£¬Ê×ÏȽ«È¥¼ì²éÕâ¸ö¶ÔÏóµÄ²ÎÊýÊÇ·ñÔÚ³£Á¿³ØÖж¨Î»µ½Ò»¸öÀàµÄ·ûºÅÒýÓ㬲¢ÇÒ¼ì²éÕâ¸ö·ûºÅÒýÓôú±íµÄÀàÊÇ·ñÒѱ»¼ÓÔØ¡¢½âÎöºÍ³õʼ»¯¹ý¡£Èç¹ûûÓУ¬±ØÐëÏÈÖ´ÐÐÀàµÄ¼ÓÔØ¹ý³Ì¡£

ÔÚÀà¼ÓÔØ¼ì²éͨ¹ýºó£¬ÐéÄâ»ú½«ÎªÐÂÉú¶ÔÏó·ÖÅäÄÚ´æ¡£¶ÔÏóËùÐèÄÚ´æ´óСÔÙÀà¼ÓÔØÍê³Éºó±ã¿ÉÈ·¶¨¡£ÄÚ´æ·ÖÅä¿ÉÒÔ²ÉÓá°Ö¸ÕëÅöײ¡±Óë¡°¿ÕÏÐÁÐ±í¡±µÄ·½Ê½¡£

¶ÔÏóµÄ·ÃÎʶ¨Î»

java³ÌÐòÐèҪͨ¹ýÕ»ÉϵÄreferenceÊý¾ÝÀ´²Ù×÷¶ÑÉϵľßÌå¶ÔÏó¡£·ÃÎÊ·½Ê½ÓÐʹÓþä±úºÍÖ±½ÓÖ¸ÕëÁ½ÖÖ¡£

¾ä±ú·ÃÎÊ java¶ÑÖн«»á»®·Ö³öÒ»¿éÄÚ´æÀ´×÷Ϊ¾ä±ú³Ø£¬referenceÖд洢µÄ¾ÍÊǶÔÏóµÄ¾ä±úµØÖ·£¬¶ø¾ä±úÖаüº¬Á˶ÔÏóʵÀýÊý¾ÝÓëÀàÐÍÊý¾Ý¸÷×ԵľßÌ嵨ַÐÅÏ¢

Ö±½ÓÖ¸Õë·ÃÎÊ java¶Ñ¶ÔÏóµÄ²¼¾ÖÖбØÐ뿼ÂÇÈçºÎ·ÅÖ÷ÃÎÊÀàÐÍÊý¾ÝµÄÏà¹ØÐÅÏ¢£¬referenceÖд洢µÄ¾ÍÊǶÔÏóµØÖ·

OOMÒì³£µÄ½â¾ö˼·

Éú³ÉDump¿ìÕÕÎļþ£º

ͨ¹ýjvm²ÎÊý¡ªXX:-HeapDumpOnOutOfMemoryError¿ÉÒÔÈÃJVMÔÚ³öÏÖÄÚ´æÒç³öÊÇDump³öµ±Ç°µÄÄÚ´æ×ª´¢¿ìÕÕ

ÓÃjmapÉú²údumpÎļþ£¬winͨ¹ýÈÎÎñ¹ÜÀíÆ÷²é¿´tomcatµÄ½ø³Ìpid£¬linuxÓÃpsÃüÁî²é¿´½ø³Ìpid,È»ºóÓÃjmapÃüÁî

ÏÈͨ¹ýÄÚ´æÓ³Ïñ·ÖÎö¹¤¾ß(ÈçEclipseµÄMemory Analyzer)½øÐзÖÎö£¬³£¼ûµÄÇé¿öÓУº

ÄÚ´æÐ¹Â¶£¬¶ÔÏóÒѾ­ËÀÁË£¬ÎÞ·¨Í¨¹ýÀ¬»øÊÕ¼¯Æ÷½øÐÐ×Ô¶¯»ØÊÕ£¬Í¨¹ýÕÒ³öй¶µÄ´úÂëλÖúÍÔ­Òò£¬²ÅºÃÈ·¶¨½â¾ö·½°¸£»

ÄÚ´æÒç³ö£¬ÄÚ´æÖеĶÔÏó¶¼»¹±ØÐë´æ»î×Å£¬Õâ˵Ã÷Java¶Ñ·ÖÅä¿Õ¼ä²»×㣬¼ì²é¶ÑÉèÖôóС£¨-XmxÓë-Xms£©£¬¼ì²é´úÂëÊÇ·ñ´æÔÚ¶ÔÏóÉúÃüÖÜÆÚÌ«³¤¡¢³ÖÓÐ״̬ʱ¼ä¹ý³¤µÄÇé¿ö¡£

OOMÒ쳣ʾÀý£º

package oom;

import java.util.ArrayList; 
import java.util.List;

/**
* VM Args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
* @ClassName: HeapOOM
*
*/
public class HeapOOM {
static class OOMObject{

}

public static void main(String[] args) {
List<OOMObject> list = new ArrayList<OOMObject>();
while(true){
list.add(new OOMObject());
}
}
}
   
2041 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ