ºÇ½ª¹¹¿·¡§
author_nari 2008ǯ11·î03Æü(·î) 13:01:22ÍúÎò
´ðËÜ¥¢¥ë¥´¥ê¥º¥à¤ÎCopying¤ÈMark&Sweep¤Ç¤Ï°ìµ¤¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ÎÁöºº¡¢²òÊü¤ò¹Ô¤¦¤¿¤á¡¢
GC¤Ë¤è¤ëÄä»ß»þ´Ö¤¬Èó¾ï¤ËŤ«¤Ã¤¿¡£
¤³¤Î·çÅÀ¤òÊ䤦¤Î¤¬¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£
Incremental GC ¤ÏGC ¤Îõº÷½èÍý¤òºÙÀÚ¤ì¤Ë¤·¤Æ¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤È¸ò¸ß¤Ëư¤«¤¹¡£
¤³¤ì¤Ë¤è¤ê°ì²ó¤¢¤¿¤ê¤ÎÄä»ß»þ´Ö¤òû¤¯¤¹¤ë¥¢¥×¥í¡¼¥Á¤Ç¤¢¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥àÀ¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤ËŬ¤·¤Æ¤¤¤ë¡£
¸ò¸ß¤Çư¤«¤¹ºÇ¤â¥á¥¸¥ã¡¼¤ÊÊýË¡¤Ï¡¢allocate ½èÍý¤ò¹Ô¤Ê¤¦¤È¤¤Ë¡¢¤³¤Ã¤½¤ê¾¯¤·¤Å¤ÄGC¤ò¿Ê¤á¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£
°Ê²¼¤Ç¤Ï¡¢mark sweep GC ¤òincremental ²½¤¹¤ë¾ì¹ç¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£
Incremental GC ¤ò¼ÂÁõ¤¹¤ë¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«ÌäÂêÅÀ¤ò¥¯¥ê¥¢¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¡¡¡¡¤Á¤Ê¤ß¤Ë¡¢GC ¤Î»Å»ö¤ò¾¯¤·¹Ô¤Ê¤Ã¤¿¤«¤é¤È¤¤¤Ã¤Æ¡¢¥á¥â¥ê¤ò¤¹¤°¤Ë²òÊü¤·¤Æ¤¯¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤(=¾Ê¥á¥â¥êÀ¤ÏÁêÊѤï¤é¤º°¤¤) ¤³¤È¤ËÃí°Õ
¤Ê¤¼¡¢writebarrier¤¬É¬Íפˤʤ뤫¤È¤¤¤¦¤È¡¢GC¤ÎºÙÀÚ¤ì¤Çư¤«¤¹ËÜ¥¢¥ë¥´¥ê¥º¥à¤ÏMark¤ÎÅÓÃæ¤Ç
¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î½èÍý¤ØÌá¤ë¤³¤È¤Ë¤Ê¤ë¡£
¤½¤ÎºÝ¤Ë¡¢MarkºÑ¤ß¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¿·µ¬»²¾È¤¬Äɲ䵤졢¤Þ¤¿¤½¤Î¿·µ¬»²¾È¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬
MarkºÑ¤ß¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤·¤«»²¾È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢Sweep¥Õ¥§¥¤¥º¤Ç¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏMark¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¤Î¤Ç¥´¥ß¤ÈȽÃǤµ¤ì²òÊü¤µ¤ì¤Æ¤·¤Þ¤¦¡£
¤½¤ì¤òËɤ°°Ù¤Ëwritebarrier¤òÍѤ¤¤Æ¡¢Êѹ¹¤¬¤¢¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë°õ¤ò¤Ä¤±¡¢¤â¤¦°ìÅÙMark¤·Ä¾¤¹½èÍý¤¬É¬Íפˤʤ롣
´ðËÜŪ¤Ë¤Ï¡¢incremental GC ¤ÏÄä»ß»þ´Ö¤òû¤¯¤¹¤ë¤Î¤¬ÌÜŪ¤Ç¤¢¤Ã¤Æ¡¢GC ¤Î»Å»ö¤ÎÎ̤ò¸º¤é¤½¤¦¤È¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£
¤³¤Î¤¿¤á¡¢Èóincremental GC ¤ÈÈæ¤Ù¤Æ¥È¡¼¥¿¥ë¼Â¹Ô»þ´Ö¤Ïû¤¯¤Ê¤é¤Ê¤¤¡£
µÕ¤Ë»Å»ö¤ÎÀÚÂØ¤¨¥ª¡¼¥Ð¥Ø¥Ã¥É¤äwrite barrier ¤Îʬ¡¢ÃÙ¤¯¤Ê¤ë¤À¤í¤¦¡£
Incremental ¤ò»È¤¦¤Ù¤¤«¤É¤¦¤«¤Ï¥×¥í¥°¥é¥à¤ÎÀ¼Á¤Ë±þ¤¸¤Æ·è¤á¤ëɬÍפ¬¤¢¤ë¡£
ºÇ¶á¤Î¥¹¥¯¥ê¥×¥È¸À¸ì¤Ë¤Ï¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£
GC¤Ë¤è¤ëÄä»ß»þ´Ö¤¬Èó¾ï¤ËŤ«¤Ã¤¿¡£
¤³¤Î·çÅÀ¤òÊ䤦¤Î¤¬¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ç¤¢¤ë¡£
Incremental GC ¤ÏGC ¤Îõº÷½èÍý¤òºÙÀÚ¤ì¤Ë¤·¤Æ¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤È¸ò¸ß¤Ëư¤«¤¹¡£
¤³¤ì¤Ë¤è¤ê°ì²ó¤¢¤¿¤ê¤ÎÄä»ß»þ´Ö¤òû¤¯¤¹¤ë¥¢¥×¥í¡¼¥Á¤Ç¤¢¤ê¡¢¥ê¥¢¥ë¥¿¥¤¥àÀ¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤ËŬ¤·¤Æ¤¤¤ë¡£
¸ò¸ß¤Çư¤«¤¹ºÇ¤â¥á¥¸¥ã¡¼¤ÊÊýË¡¤Ï¡¢allocate ½èÍý¤ò¹Ô¤Ê¤¦¤È¤¤Ë¡¢¤³¤Ã¤½¤ê¾¯¤·¤Å¤ÄGC¤ò¿Ê¤á¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£
°Ê²¼¤Ç¤Ï¡¢mark sweep GC ¤òincremental ²½¤¹¤ë¾ì¹ç¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤ë¡£
Incremental GC ¤ò¼ÂÁõ¤¹¤ë¤Ë¤Ï¡¢¤¤¤¯¤Ä¤«ÌäÂêÅÀ¤ò¥¯¥ê¥¢¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
- GC ½èÍý¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¡£¤³¤ì¤Þ¤Ç¤Î¤è¤¦¤Ë¡¢¥Ò¡¼¥×¤¬ËþÇդˤʤ俤éGC ¤ò»Ï¤á¤ë¡¦¡¦¤Î¤Ç¤Ï´Ö¤Ë¹ç¤ï¤Ê¤¤¡£
¡¡¡¡¤Á¤Ê¤ß¤Ë¡¢GC ¤Î»Å»ö¤ò¾¯¤·¹Ô¤Ê¤Ã¤¿¤«¤é¤È¤¤¤Ã¤Æ¡¢¥á¥â¥ê¤ò¤¹¤°¤Ë²òÊü¤·¤Æ¤¯¤ì¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤(=¾Ê¥á¥â¥êÀ¤ÏÁêÊѤï¤é¤º°¤¤) ¤³¤È¤ËÃí°Õ
- writebarrier¤¬É¬Íפˤʤ롣
¤Ê¤¼¡¢writebarrier¤¬É¬Íפˤʤ뤫¤È¤¤¤¦¤È¡¢GC¤ÎºÙÀÚ¤ì¤Çư¤«¤¹ËÜ¥¢¥ë¥´¥ê¥º¥à¤ÏMark¤ÎÅÓÃæ¤Ç
¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤Î½èÍý¤ØÌá¤ë¤³¤È¤Ë¤Ê¤ë¡£
¤½¤ÎºÝ¤Ë¡¢MarkºÑ¤ß¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î¿·µ¬»²¾È¤¬Äɲ䵤졢¤Þ¤¿¤½¤Î¿·µ¬»²¾È¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬
MarkºÑ¤ß¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¤·¤«»²¾È¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢Sweep¥Õ¥§¥¤¥º¤Ç¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏMark¤¬ÉÕ¤¤¤Æ¤¤¤Ê¤¤¤Î¤Ç¥´¥ß¤ÈȽÃǤµ¤ì²òÊü¤µ¤ì¤Æ¤·¤Þ¤¦¡£
¤½¤ì¤òËɤ°°Ù¤Ëwritebarrier¤òÍѤ¤¤Æ¡¢Êѹ¹¤¬¤¢¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ë°õ¤ò¤Ä¤±¡¢¤â¤¦°ìÅÙMark¤·Ä¾¤¹½èÍý¤¬É¬Íפˤʤ롣
´ðËÜŪ¤Ë¤Ï¡¢incremental GC ¤ÏÄä»ß»þ´Ö¤òû¤¯¤¹¤ë¤Î¤¬ÌÜŪ¤Ç¤¢¤Ã¤Æ¡¢GC ¤Î»Å»ö¤ÎÎ̤ò¸º¤é¤½¤¦¤È¤¹¤ë¤â¤Î¤Ç¤Ï¤Ê¤¤¡£
¤³¤Î¤¿¤á¡¢Èóincremental GC ¤ÈÈæ¤Ù¤Æ¥È¡¼¥¿¥ë¼Â¹Ô»þ´Ö¤Ïû¤¯¤Ê¤é¤Ê¤¤¡£
µÕ¤Ë»Å»ö¤ÎÀÚÂØ¤¨¥ª¡¼¥Ð¥Ø¥Ã¥É¤äwrite barrier ¤Îʬ¡¢ÃÙ¤¯¤Ê¤ë¤À¤í¤¦¡£
Incremental ¤ò»È¤¦¤Ù¤¤«¤É¤¦¤«¤Ï¥×¥í¥°¥é¥à¤ÎÀ¼Á¤Ë±þ¤¸¤Æ·è¤á¤ëɬÍפ¬¤¢¤ë¡£
ºÇ¶á¤Î¥¹¥¯¥ê¥×¥È¸À¸ì¤Ë¤Ï¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¤¡£
- ¥«¥Æ¥´¥ê¡§
- ¥Ñ¥½¥³¥ó
- ¥¬¡¼¥Ù¥Ã¥¸¥³¥ì¥¯¥¿¡ÊGC¡Ë
¥³¥á¥ó¥È¤ò¤«¤¯