Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

JavaÀ¬»ø»ØÊÕµ÷ÓÅ

JavaÀ¬»ø»ØÊÕµ÷ÓÅ
ÔÚJavaÖУ¬Í¨³£Í¨Ñ¶ÀàÐ͵ķþÎñÆ÷¶ÔGC(Garbage Collection)±È½ÏÃô¸Ð¡£Í¨³£Í¨Ñ¶·þÎñÆ÷ÿÃëÐèÒª´¦Àí´óÁ¿½ø³öµÄÊý¾Ý°ü£¬ÐèÒª½âÎö£¬·Ö½â³É²»Í¬µÄÒµÎñÂß¼­¶ÔÏó²¢×öÏà¹ØµÄÒµÎñ´¦Àí£¬ÕâÑù»áµ¼Ö´óÁ¿µÄÁÙʱ¶ÔÏó±»´´½¨ºÍ»ØÊÕ¡£Í¬Ê±·þÎñÆ÷Èç¹ûÐèҪͬʱ±£´æÓû§×´Ì¬µÄ»°£¬ÓÖ»á²úÉúºÜ¶àÓÀ¾ÃµÄ¶ÔÏ󣬱ÈÈçÓû§session¡£ÒµÎñÔ½¸´ÔÓµÄÓ¦ÓÃÍùÍùÓû§session°üº¬µÄÒýÓöÔÏó¾ÍÔ½¶à¡£ÕâÑùÔÚ¼«¶ËÇé¿öÏ»ᷢÉúÁ½¼þÊÂÇ飬long gc pause time »ò out of memory¡£
 Ò»£¬Òª½â¾ölong pause timeÊ×ÏÈÒªÁ˽âJVMÖÐheapµÄ½á¹¹

java gc heap
java gc heap Java HeapΪʲôҪ·Ö³É¼¸¸ö²»Í¬µÄ´ú(generation)? ÓÉÓÚ80%-98%µÄ¶ÔÏóµÄÉú´æÖÜÆÚºÜ¶Ì£¬´ó²¿·ÖжÔÏó´æ·ÅÔÚyoung generation¿ÉÒԺܸßЧµÄ»ØÊÕ£¬±ÜÃâ±éÀúËùÓжÔÏó¡£ youngÓëoldÖÐÄÚ´æ·ÖÅäµÄËã·¨ÍêÈ«²»Í¬¡£young generationÖÐÓÉÓÚ´æ»îµÄºÜÉÙ£¬Òªmark, sweep È»ºóÔÙ compact Ê£ÓàµÄ¶ÔÏó±È½ÏºÄʱ£¬¸É´à°Ñ live object copy µ½ÁíÍâÒ»¸ö¿Õ¼ä¸ü¸ßЧ¡£old generationÍêÈ«Ïà·´£¬ÀïÃæµÄ live object ±ä»¯½ÏÉÙ¡£Òò´Ë²ÉÓà mark-sweep-compact¸üºÏÊÊ¡£
¶þ£¬JavaÖÐËÄÖÖÀ¬»ø»ØÊÕËã·¨
JavaÖÐÓÐËÄÖÖ²»Í¬µÄ»ØÊÕËã·¨£¬¶ÔÓ¦µÄÆô¶¯²ÎÊýΪ
–XX:+UseSerialGC
–XX:+UseParallelGC
–XX:+UseParallelOldGC
–XX:+UseConcMarkSweepGC
1. Serial Collector ´ó²¿·Öƽ̨»òÕßÇ¿ÖÆ java -client ĬÈÏ»áʹÓÃÕâÖÖ¡£ young generationËã·¨ = serial old generationËã·¨ = serial (mark-sweep-compact) ÕâÖÖ·½·¨µÄȱµãºÜÃ÷ÏÔ£¬stop-the-world, ËÙ¶ÈÂý¡£·þÎñÆ÷Ó¦Óò»ÍƼöʹÓá£
2. Parallel Collector ÔÚlinux x64ÉÏĬÈÏÊÇÕâÖÖ£¬ÆäËûƽ̨Ҫ¼Ó java -server ²ÎÊý²Å»áĬÈÏÑ¡ÓÃÕâÖÖ¡£ young = parallel£¬¶à¸öthreadͬʱcopy old = mark-sweep-compact = 1 Óŵ㣺ÐÂÉú´ú»ØÊÕ¸ü¿ì¡£ÒòΪϵͳ´ó²¿·Öʱ¼ä×öµÄgc¶¼ÊÇÐÂÉú´úµÄ£¬ÕâÑùÌá¸ßÁËthroughput(cpuÓÃÓÚ·Çgcʱ¼ä) ȱµã£ºµ±ÔËÐÐÔÚ8G/16G serverÉÏold generation live objectÌ«¶àʱºòpause time¹ý³¤
3. Parallel Compact Collector (ParallelOld) young = parallel = 2 old = parallel£¬·Ö³É¶à¸ö¶ÀÁ¢µÄµ¥Ôª£¬Èç¹ûµ¥ÔªÖÐlive objectÉÙÔò»ØÊÕ£¬¶àÔòÌø¹ýÓŵ㣺old old generationÉÏÐÔÄÜ½Ï parallel ·½Ê½ÓÐÌá¸ßȱµã£º´ó²¿·Öserverϵͳold generationÄÚ´æÕ¼Óûá´ïµ½60%-80%, ûÓÐÄÇô¶àÀíÏëµÄµ¥Ôªlive objectºÜÉÙ·½±ãѸËÙ»ØÊÕ£¬Í¬Ê±compact·½Ã濪Ïú±ÈÆðparallel²


Ïà¹ØÎĵµ£º

½âÎöJavaÀàºÍ¶ÔÏóµÄ³õʼ»¯¹ý³Ì

ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......

java ¼ÆÊ±Æ÷

class NewTask extends java.util.TimerTask{
   private  String HOUR_MASK = "0";
      private String MIN_MASK = "0";
      private String SEC_MASK = "0";
      private int hour;
   private int min ......

JavaÐéÄâ»ú»ù´¡£º¶ÑÓëÕ»¸ÅÄîÏê½â

JavaÐéÄâ»úÖУ¬Êý¾ÝÀàÐÍ¿ÉÒÔ·ÖΪÁ½Àࣺ»ù±¾ÀàÐͺÍÒýÓÃÀàÐÍ¡£»ù±¾ÀàÐ͵ıäÁ¿±£´æÔ­Ê¼Öµ£¬¼´£ºËû´ú±íµÄÖµ¾ÍÊÇÊýÖµ±¾Éí£»¶øÒýÓÃÀàÐ͵ıäÁ¿±£´æÒýÓÃÖµ¡£“ÒýÓÃÖµ”´ú±íÁËij¸ö¶ÔÏóµÄÒýÓ㬶ø²»ÊǶÔÏó±¾Éí£¬¶ÔÏó±¾Éí´æ·ÅÔÚÕâ¸öÒýÓÃÖµËù±íʾµÄµØÖ·µÄλÖá£
»ù±¾ÀàÐͰüÀ¨£ºbyte, short, int, long, char, float, double ......

JAVA Àïvolatile¹Ø¼ü×ÖÊÇʲôÒâ˼£¿

VolatileÐÞÊεijÉÔ±±äÁ¿ÔÚÿ´Î±»Ï̷߳ÃÎÊʱ£¬¶¼Ç¿ÆÈ´Ó¹²ÏíÄÚ´æÖÐÖØ¶Á¸Ã³ÉÔ±±äÁ¿µÄÖµ¡£¶øÇÒ£¬µ±³ÉÔ±±äÁ¿·¢Éú±ä»¯Ê±£¬Ç¿ÆÈÏ߳̽«±ä»¯Öµ»ØÐ´µ½¹²ÏíÄÚ´æ¡£ÕâÑùÔÚÈκÎʱ¿Ì£¬Á½¸ö²»Í¬µÄÏß³Ì×ÜÊÇ¿´µ½Ä³¸ö³ÉÔ±±äÁ¿µÄͬһ¸öÖµ¡£
JavaÓïÑԹ淶ÖÐÖ¸³ö£ºÎªÁË»ñµÃ×î¼ÑËÙ¶È£¬ÔÊÐíÏ̱߳£´æ¹²Ïí³ÉÔ±±äÁ¿µÄ˽Óп½±´£¬¶øÇÒÖ»µ±Ï߳̽øÈë»òÕßÀë ......

JavaÖеÄÖµ´«µÝºÍµØÖ·´«µÝ

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestClass {
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO ×Ô動Éú³É¤µ¤ì¤¿¥á¥½¥Ã¥É?¥¹¥¿¥Ö
  List li = ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ