¶Ñ(Heap)ºÍ·Ç¶Ñ(Non-heap)ÄÚ´æ
°´ÕÕ¹Ù·½µÄ˵·¨£º¡°Java ÐéÄâ»ú¾ßÓÐÒ»¸ö¶Ñ£¬¶ÑÊÇÔËÐÐʱÊý¾ÝÇøÓò£¬ËùÓÐÀàʵÀýºÍÊý×éµÄÄÚ´æ¾ù´Ó´Ë´¦·ÖÅä¡£¶ÑÊÇÔÚ Java ÐéÄâ»úÆô¶¯Ê±´´½¨µÄ¡£¡±¡°ÔÚJVMÖжÑÖ®ÍâµÄÄÚ´æ³ÆÎª·Ç¶ÑÄÚ´æ(Non-heap memory)¡±¡£¿ÉÒÔ¿´³öJVMÖ÷Òª¹ÜÀíÁ½ÖÖÀàÐ͵ÄÄڴ棺¶ÑºÍ·Ç¶Ñ¡£¼òµ¥À´Ëµ¶Ñ¾ÍÊÇJava´úÂë¿É¼°µÄÄڴ棬ÊÇÁô¸ø¿ª·¢ÈËԱʹÓõģ»·Ç¶Ñ¾ÍÊÇJVMÁô¸ø×Ô¼ºÓõģ¬ËùÒÔ·½·¨Çø¡¢JVMÄÚ²¿´¦Àí»òÓÅ»¯ËùÐèµÄÄÚ´æ(ÈçJIT±àÒëºóµÄ´úÂ뻺´æ)¡¢Ã¿¸öÀà½á¹¹(ÈçÔËÐÐʱ³£Êý³Ø¡¢×ֶκͷ½·¨Êý¾Ý)ÒÔ¼°·½·¨ºÍ¹¹Ôì·½·¨µÄ´úÂë¶¼ÔڷǶÑÄÚ´æÖС£
¶ÑÄÚ´æ·ÖÅä
JVM³õʼ·ÖÅäµÄÄÚ´æÓÉ-XmsÖ¸¶¨£¬Ä¬ÈÏÊÇÎïÀíÄÚ´æµÄ1/64£»JVM×î´ó·ÖÅäµÄÄÚ´æÓÉ-XmxÖ¸¶¨£¬Ä¬ÈÏÊÇÎïÀíÄÚ´æµÄ1/4¡£Ä¬ÈÏ¿ÕÓà¶ÑÄÚ´æÐ¡ÓÚ40%ʱ£¬JVM¾Í»áÔö´ó¶ÑÖ±µ½-XmxµÄ×î´óÏÞÖÆ£»¿ÕÓà¶ÑÄÚ´æ´óÓÚ70%ʱ£¬JVM»á¼õÉÙ¶ÑÖ±µ½ -XmsµÄ×îСÏÞÖÆ¡£Òò´Ë·þÎñÆ÷Ò»°ãÉèÖÃ-Xms¡¢-XmxÏàµÈÒÔ±ÜÃâÔÚÿ´ÎGC ºóµ÷Õû¶ÑµÄ´óС¡£
·Ç¶ÑÄÚ´æ·ÖÅä
JVMʹÓÃ-XX:PermSizeÉèÖ÷ǶÑÄÚ´æ³õʼֵ£¬Ä¬ÈÏÊÇÎïÀíÄÚ´æµÄ1/64£»ÓÉXX:MaxPermSizeÉèÖÃ×î´ó·Ç¶ÑÄÚ´æµÄ´óС£¬Ä¬ÈÏÊÇÎïÀíÄÚ´æµÄ1/4¡£
JVMÄÚ´æÏÞÖÆ(×î´óÖµ)
Ê×ÏÈJVMÄÚ´æÏÞÖÆÓÚʵ¼ÊµÄ×î´óÎïÀíÄÚ´æ(·Ï»°£¡ºÇºÇ)£¬¼ÙÉèÎïÀíÄÚ´æÎÞÏÞ´óµÄ»°£¬JVMÄÚ´æµÄ×î´óÖµ¸ú²Ù×÷ϵͳÓкܴóµÄ¹ØÏµ¡£¼òµ¥µÄ˵¾Í32λ´¦ÀíÆ÷ËäÈ»¿É¿ØÄÚ´æ¿Õ¼äÓÐ4GB,µ«ÊǾßÌåµÄ²Ù×÷ϵͳ»á¸øÒ»¸öÏÞÖÆ£¬Õâ¸öÏÞÖÆÒ»°ãÊÇ2GB-3GB£¨Ò»°ãÀ´ËµWindowsϵͳÏÂΪ1.5G-2G£¬LinuxϵͳÏÂΪ2G-3G£©£¬¶ø64bitÒÔÉϵĴ¦ÀíÆ÷¾Í²»»áÓÐÏÞÖÆÁË¡£