Java heap space³ö´íÔÒò[ת]
ʹÓÃJava³ÌÐò´ÓÊý¾Ý¿âÖвéѯ´óÁ¿µÄÊý¾ÝʱÈÝÒ׳öÏÖÒì³£:
java.lang.OutOfMemoryError: Java heap space
ÔÚJVMÖÐÈç¹û98£¥µÄʱ¼äÊÇÓÃÓÚGCÇÒ¿ÉÓÃµÄ Heap size ²»×ã2£¥µÄʱºò½«Å׳ö´ËÒì³£ÐÅÏ¢¡£
»¹ÓÐʹÓÃjxl¶ÁдexcelÎļþʱ£¬Í¬Ê±¶ÁÈëËùÓмǼ£¬Ò²ÈÝÒ׳öÏÖÕâ¸öÎÊÌâ¡£
JVM¶ÑµÄÉèÖÃÊÇÖ¸java³ÌÐòÔËÐйý³ÌÖÐJVM¿ÉÒÔµ÷ÅäʹÓõÄÄÚ´æ¿Õ¼äµÄÉèÖÃ.JVMÔÚÆô¶¯µÄʱºò»á×Ô¶¯ÉèÖÃHeap sizeµÄÖµ£¬Æä³õʼ¿Õ¼ä(¼´-Xms)ÊÇÎïÀíÄÚ´æµÄ1/64£¬×î´ó¿Õ¼ä(-Xmx)ÊÇÎïÀíÄÚ´æµÄ1/4¡£¿ÉÒÔÀûÓÃJVMÌṩµÄ-Xmn -Xms -XmxµÈÑ¡Ïî¿É½øÐÐÉèÖá£
ÀýÈ磺java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
Èç¹ûHeap SizeÉèÖÃÆ«Ð¡£¬³ýÁËÕâЩÒì³£ÐÅÏ¢Í⣬»¹»á·¢ÏÖ³ÌÐòµÄÏìÓ¦ËٶȱäÂýÁË¡£GCÕ¼ÓÃÁ˸ü¶àµÄʱ¼ä£¬¶øÓ¦Ó÷ÖÅäµ½µÄÖ´ÐÐʱ¼ä½ÏÉÙ¡£
Heap Size ×î´ó²»Òª³¬¹ý¿ÉÓÃÎïÀíÄÚ´æµÄ80£¥£¬Ò»°ãµÄÒª½«-XmsºÍ-XmxÑ¡ÏîÉèÖÃΪÏàͬ£¬¶ø-XmnΪ1/4µÄ-XmxÖµ¡£
Heap sizeµÄ -Xms -Xmn ÉèÖò»Òª³¬³öÎïÀíÄÚ´æµÄ´óС¡£·ñÔò»áÌáʾ“Error occurred during initialization of VM Could not reserve enough space for object heap ”¡£
½â¾ö°ì·¨£º
java³ÌÐò
java -Xms32m -Xmx800m className
¾ÍÊÇÔÚÖ´ÐÐJAVAÀàÎļþʱ¼ÓÉÏÕâ¸ö²ÎÊý£¬ÆäÖÐclassNameÊÇÐèÒªÖ´ÐеÄȫ·¾¶ÀàÃû¡£
ÓÃEclispe ÔÚEclipse ->run -arguments ÖеÄVM arguments ÖÐÊäÈë-Xms32m -Xmx800m¡£
tomcat
windows ¸ü¸Äϵͳ»·¾³±äÁ¿
¼ÓÉÏJAVA_OPTS=-Xms64m -Xmx512m
Linux ÔÚ{tomcat_home}/bin/catalina.shµÄÇ°Ãæ£¬¼Ó
set JAVA_OPTS='-Xms64 -Xmx512'
ÔÒò
£¨1£©²»ÒªÊÔͼȥ¼Ù¶¨À¬»øÊÕ¼¯·¢ÉúµÄʱ¼ä£¬ÕâÒ»Çж¼ÊÇδ֪µÄ¡£·½·¨ÖеÄÒ»¸öÁÙʱ¶ÔÏóÔÚ·½·¨µ÷ÓÃÍê±Ïºó¾Í±ä³ÉÁËÎÞÓöÔÏó£¬Õâ¸öʱºòËüÕ¼ÓõÄÄÚ´æ¾Í¿ÉÒÔ±»ÊÍ·Å¡£
¡¡¡¡£¨2£©JavaÖÐÌṩÁËһЩºÍÀ¬»øÊÕ¼¯´ò½»µÀµÄÀ࣬¶øÇÒÌṩÁËÒ»ÖÖÇ¿ÐÐÖ´ÐÐÀ¬»øÊÕ¼¯µÄ·½·¨--µ÷ÓÃSystem.gc()£¬µ«ÕâͬÑùÊǸö²»È·¶¨µÄ·½·¨£¬ºÜ¿ÉÄܸ÷¸öƽ̨µÄʵÏÖ»ò²»Í¬ÖÖÀàµÄJDKʵÏÖ²»»áÏàͬ¡£Java Öв¢²»±£Ö¤Ã¿´Îµ÷Óø÷½·¨¾ÍÒ»¶¨Äܹ»Æô¶¯À¬»øÊÕ¼¯£¬ËüÖ»²»¹ý»áÏòJVM·¢³öÕâÑùÒ»¸öÉêÇ룬µ½µ×ÊÇ·ñÕæÕýÖ´ÐÐÀ¬»øÊÕ¼¯£¬Ò»Çж¼ÊǸöδ֪Êý¡£
¡¡¡¡£¨3£©ÌôÑ¡ÊʺÏ×Ô¼ºµÄÀ¬»øÊÕ¼¯Æ÷ºÍËã·¨¡£Èç¹ûϵͳûÓÐÌØÊâºÍ¿Á¿ÌµÄÐÔÄÜÒªÇ󣬿ÉÒÔ²ÉÓÃJVMµÄȱʡѡÏî¡£·ñÔò¿ÉÒÔ¿¼ÂÇʹÓÃÓÐÕë¶ÔÐÔµÄÀ¬»øÊÕ¼¯Æ÷£¬±ÈÈçÔöÁ¿ÊÕ¼¯Æ÷¾Í±È½ÏÊʺÏʵʱÐÔÒªÇó½Ï¸ßµÄϵͳ֮ÖС£ÏµÍ³¾ßÓнϸߵÄÅäÖã¬ÓбȽ϶àµÄÏÐÖÃ×ÊÔ´£¬¿ÉÒÔ¿¼ÂÇʹÓò¢Ðбê¼Ç/Çå³ýÊÕ¼¯Æ÷¡£
Ïà¹ØÎĵµ£º
¡¡1¡¢JavaÓïÑÔÊǼòµ¥µÄ¡£JavaÓïÑÔµÄÓï·¨ÓëCÓïÑÔºÍC++ÓïÑԺܽӽü£¬Ê¹µÃ´ó¶àÊý³ÌÐòÔ±ºÜÈÝÒ×ѧϰºÍʹÓÃJava¡£ÁíÒ»·½Ã棬Java¶ªÆúÁËC++ ÖкÜÉÙʹÓõġ¢ºÜÄÑÀí½âµÄ¡¢ÁîÈËÃÔ»óµÄÄÇÐ©ÌØÐÔ£¬Èç²Ù×÷·ûÖØÔØ¡¢¶à¼Ì³Ð¡¢×Ô¶¯µÄÇ¿ÖÆÀàÐÍת»»¡£ÌØ±ðµØ£¬JavaÓïÑÔ²»Ê¹ÓÃÖ¸Õ룬²¢ÌṩÁË×Ô¶¯µÄ·ÏÁÏÊÕ¼¯£¬Ê¹µÃ³ÌÐòÔ±²»±ØÎªÄÚ´æ¹ÜÀí¶øµ£ÓÇ¡£
¡¡¡ ......
public class Path {
//get class absolute address
public String getPath() {
String classPath = getClass().getName();
if (classPath.indexOf(".") != -1) {
classPath = classPath.substring(classPath.lastIndexOf(".") + 1,
......
ÔÚÉÏһƪÎÄÕ¡¶ÔÚJavaÖÐÀûÓö¯Ì¬´úÀíʵÏÖÊý¾Ý¿âÁ¬½ÓÓëÊÂÎñµÄ×Ô¶¯¹ÜÀí¡·½²ÊöÁËÈçºÎʹÓÃJava¶¯Ì¬´úÀí£¬µ«ÒªÇó±»´úÀí¶ÔÏóҪʵÏÖÒ»¸ö½Ó¿Ú£¬Èç¹û²»ÏëʵÏÖ½Ó¿ÚÔõô°ìÄØ£¿Ê¹ÓÿªÔ´µÄcglib¿ÉÒÔʵÏÖ¶ÔÒ»¸öÀà¶ÔÏóµÄ´úÀí£¬¶ø²»ÒªÇóʵÏÖ½Ó¿Ú¡£
cglib£¨Code Generation Library£©Äܹ»ÔÚ³ÌÐòÔË ......
ΪÁËʵÏÖÁ½¸öÊý×Ö½øÐн»»»£¬ÎÒÃÇͨ³£¿ÉÒÔÀûÓÃλÔËËãÀ´ÊµÏÖ
C++³ÌÐò swap(int a ,int b){a^=b^=a^=b;}
JAVA³ÌÐò swap(int a, int b){ a^=b;b^=a;a^=b; }»òÕß{ b^=(a^=b) ; a^=b;}
Èç¹ûJAVAÓÃC++µÄʵÏÖ·½Ê½Ôò»áµÃµ½ bµÃµ½ÁËaµÄÖµ£¬µ«ÊÇaÏÖÔÚµÄֵȴ² ......
´ó¼ÒºÃ£¬Çë°´ÕÕÏÂͼ¸ñʽÌîдÄãµÄ¼òÀú£¬·¢Ë͵½Óʼþ loveyingjiaping@126.com
¹«Ë¾×ܲ¿ÔÚº¼ÖÝÎ÷ºþ¿Æ¼¼Ô°¸½½ü£¬¸£Àû´ýÓöºÃ£¬ÎåÏÕÒ»½ð£¬
²¹Ìù£º·¹Ìù¡¢½»Í¨·Ñ¡¢Í¨Ñ¶·Ñ¡¢ÄêÖÕ½±¡¢¹ý½Ú·Ñ……
±±¾©·Ö¹«Ë¾¼¼Êõ²¿¾Àí£¨¸±¾Àí£©¸ÚλְÔðºÍÈÎÖ°Ìõ¼þÈçÏ£º
n ¸ÚλְÔð£º
1. & ......