JAVAÐéÄâ»úÄÚ´æÉèÖÃ
»ù±¾¸ÅÄ
PermGen space£ºÈ«³ÆÊÇPermanent Generation space¡£¾ÍÊÇ˵ÊÇÓÀ¾Ã±£´æµÄÇøÓò,ÓÃÓÚ´æ·ÅClassºÍMetaÐÅÏ¢,ClassÔÚ±»LoadµÄʱºò±»·ÅÈë¸ÃÇøÓò
Heap space£º´æ·ÅInstance¡£ GC(Garbage Collection)Ó¦¸Ã²»»á¶ÔPermGen space½øÐÐÇåÀí
ËùÒÔÈç¹ûÄãµÄAPP»áLOADºÜ¶àCLASSµÄ»°,¾ÍºÜ¿ÉÄܳöÏÖPermGen space´íÎó
Java Heap·ÖΪ3¸öÇø£¬Young£¬OldºÍPermanent¡£Young±£´æ¸ÕʵÀý»¯µÄ¶ÔÏó¡£µ±¸ÃÇø±»ÌîÂúʱ£¬GC»á½«¶ÔÏóÒÆµ½OldÇø¡£PermanentÇøÔò¸ºÔð±£´æ·´Éä¶ÔÏó ¡£
JVMÓÐ2¸öGCÏ̡߳£µÚÒ»¸öÏ̸߳ºÔð»ØÊÕHeapµÄYoungÇø¡£µÚ¶þ¸öÏß³ÌÔÚHeap²»×ãʱ£¬±éÀúHeap£¬½«Young ÇøÉý¼¶ÎªOlderÇø¡£OlderÇøµÄ´óСµÈÓÚ-Xmx¼õÈ¥-Xmn£¬²»Äܽ«-XmsµÄÖµÉèµÄ¹ý´ó£¬ÒòΪµÚ¶þ¸öÏ̱߳»ÆÈÔËÐлήµÍJVMµÄÐÔÄÜ¡£
ΪʲôһЩ³ÌÐòƵ·±·¢ÉúGC£¿ÓÐÈçÏÂÔÒò£º
l ³ÌÐòÄÚµ÷ÓÃÁËSystem.gc()»òRuntime.gc()¡£
l һЩÖмä¼þÈí¼þµ÷ÓÃ×Ô¼ºµÄGC ·½·¨£¬´ËʱÐèÒªÉèÖòÎÊý½ûÖ¹ÕâЩGC¡£
l JavaµÄHeap̫С£¬Ò»°ãĬÈϵÄHeapÖµ¶¼ºÜС¡£
l Ƶ·±ÊµÀý»¯¶ÔÏó£¬Release¶ÔÏó¡£´Ëʱ¾¡Á¿±£´æ²¢ÖØÓöÔÏó£¬ÀýÈçʹÓÃStringBuffer()ºÍString()¡£
Èç¹ûÄã·¢ÏÖÿ´ÎGCºó£¬HeapµÄÊ£Óà¿Õ¼ä»áÊÇ×ܿռäµÄ50%£¬Õâ±íʾÄãµÄHeap´¦ÓÚ½¡¿µ×´Ì¬¡£Ðí¶àServer¶ËµÄJava³ÌÐòÿ´ÎGCºó×îºÃÄÜÓÐ65%µÄÊ£Óà¿Õ¼ä¡£
¾Ñé̸֮£º
1 £® Server ¶Ë JVM ×îºÃ½« -Xms ºÍ -Xmx ÉèΪÏàֵͬ¡£ÎªÁËÓÅ»¯ GC £¬×îºÃÈà -Xmn ÖµÔ¼µÈÓÚ -Xmx µÄ 1/3[2] ¡£
2 £®Ò»¸ö GUI ³ÌÐò×îºÃÊÇÿ 10 µ½ 20 Ãë¼äÔËÐÐÒ»´Î GC £¬Ã¿´ÎÔÚ°ëÃëÖ®ÄÚÍê³É [2] ¡£
×¢Ò⣺
1£®Ôö¼ÓHeapµÄ´óСËäÈ»»á½µµÍGCµÄƵÂÊ£¬µ«Ò²Ôö¼ÓÁËÿ´ÎGCµÄʱ¼ä¡£²¢ÇÒGCÔËÐÐʱ£¬ËùÓеÄÓû§Ï߳̽«ÔÝÍ££¬Ò²¾ÍÊÇGCÆÚ¼ä£¬JavaÓ¦ÓóÌÐò²»×öÈκι¤×÷¡£
2£®Heap´óС²¢²»¾ö¶¨½ø³ÌµÄÄÚ´æÊ¹ÓÃÁ¿¡£½ø³ÌµÄÄÚ´æÊ¹ÓÃÁ¿Òª´óÓÚ-Xmx¶¨ÒåµÄÖµ£¬ÒòΪJavaΪÆäËûÈÎÎñ·ÖÅäÄڴ棬ÀýÈçÿ¸öÏ̵߳ÄStackµÈ¡£
StackµÄÉ趨
ÿ¸öÏ̶߳¼ÓÐËû×Ô¼ºµÄStack¡£ -Xss ÿ¸öÏß³ÌµÄ Stack ´óС
StackµÄ´óСÏÞÖÆ×ÅÏ̵߳ÄÊýÁ¿¡£Èç¹ûStack¹ý´ó¾ÍºÃµ¼ÖÂÄÚ´æÒç©¡£-Xss²ÎÊý¾ö¶¨Stack´óС£¬ÀýÈç-Xss1024K¡£Èç¹ûStack̫С£¬Ò²»áµ¼ÖÂStackÒç©¡£
Ó²¼þ»·¾³
Ó²¼þ»·¾³Ò²Ó°ÏìGCµÄЧÂÊ£¬ÀýÈç»úÆ÷µÄÖÖÀ࣬ÄÚ´
Ïà¹ØÎĵµ£º
ÕªÒª: ×î³õjavaÊDz»Ö§³Ö¶ÔÎı¾ÎļþµÄ´¦ÀíµÄ£¬ÎªÁËÃÖ²¹Õâ¸öȱº¶¶øÒýÈëÁËReaderºÍWriterÁ½¸öÀà
×î³õjavaÊDz»Ö§³Ö¶ÔÎı¾ÎļþµÄ´¦ÀíµÄ£¬ÎªÁËÃÖ²¹Õâ¸öȱº¶¶øÒýÈëÁËReaderºÍWriterÁ½¸öÀ࣬ÕâÁ½¸öÀà¶¼ÊdzéÏóÀ࣬WriterÖÐ write(char[] ch,int off,int
length)£¬flush()ºÍclose()·½·¨Îª³éÏó·½·¨£¬ReaderÖÐread(char[] ch, ......
The Java virtual machine defines various runtime data areas that are used during execution of a program. Some of these data areas are created on Java virtual machine start-up and are destroyed only when the Java virtual machine exits. Other data areas are per thread. Per-thread data areas are create ......
public class Parent
{
//1
static int a = 1;
//2
static
{
a = 10;
System.out.println("parent static c ......
Ò»¡¢ÀûÓÃClass.forNameº¯Êý£¨ÓÃjava¿ª·¢B/SģʽµÄ³ÌÐò£© 1.´úÂëÈçÏ£º //×¢²áÇý¶¯³ÌÐò
public boolean connectDb() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
return true;
} catch (ClassNotFoundException e) {
System.out.println(e);
return false;
}
}
......