ºÇ½ª¹¹¿·¡§
author_nari 2009ǯ04·î18Æü(ÅÚ) 16:16:08ÍúÎò
¥ª¥Ö¥¸¥§¥¯¥È¤Î¼÷Ì¿¤Ë¤Ä¤¤¤Æ¡¢Â¿¤¯¤Î¥×¥í¥°¥é¥à¤Ç´Ñ¬¤µ¤ì¤ë¤¢¤ë·¹¸þ¤¬ÃΤé¤ì¤Æ¤¤¤ë¡£
¤½¤ì¤Ï¡Ö¸Å¤¯¤«¤éÀ¸¤»Ä¤Ã¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤½¤Î¤Þ¤ÞÀ¸¤»Ä¤ê¤ä¤¹¤¯¡¢¿·¤·¤¯³ÎÊݤµ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Û¤É¤¹¤°¤Ë¥´¥ß¤Ë¤Ê¤ê¤ä¤¹¤¤¡×(*)
¤È¤¤¤¦·¹¸þ¤Ç¤¢¤ë¡£
GC ¤Î¼Â¹Ô¸úΨ¤ÏÀ¸¤»Ä¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¾¯¤Ê¤¤¤Û¤É¤è¤¤¤Î¤À¤«¤é¡¢
¸Å¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Û¤¦¤Ã¤Æ¤ª¤¤¤Æ(̵¾ò·ï¤ËÀ¸¤»Ä¤ë¤È¤ß¤Ê¤·¤Æ) ¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò½ÅÅÀŪ¤Ëõº÷¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÍø±×¤¬ÆÀ¤é¤ì¤½¤¦¤Ç¤¢¤ë¡£
Generational GC (À¤Âå·¿GC) ¤Ï¡¢¿·¤·¤á¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¥Ò¡¼¥×¤È¡¢¸Å¤á¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¥Ò¡¼¥×¤òÍѤ¤¤ë(¾å¿Þ)¡£
Copying GC ¤ò´ð¤Ë¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¿Þ¤Ë¤Ï¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¿·À¤Âå¤Î¥Ò¡¼¥×¤ÈµìÀ¤Âå¤Î¥Ò¡¼¥×¤Î¤½¤ì¤¾¤ì¤¬from/to ¤Ë2 Åùʬ¤µ¤ì¤ë¡£
¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Þ¤º¿·À¤Âå¥Ò¡¼¥×¤Ë³ÎÊݤµ¤ì¤ë¡£¿·À¤Âå¥Ò¡¼¥×¤¬°ìÇդˤʤ俤顢¥Ò¡¼¥×Á´ÂΤÎGC¤ò¹Ô¤Ê¤¦Âå¤ï¤ê¤Ë¡¢¿·À¤Âå¥Ò¡¼¥×¤À¤±¤òÂоݤȤ·¤¿GC(minor collection) ¤ò¹Ô¤Ê¤¦¡£
Minor collection ¤ò·«¤êÊÖ¤·¤¿·ë²Ì¡¢¤¢¤ëÄøÅٰʾåĹ¼÷Ì¿¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬¸«¤Ä¤«¤Ã¤¿¤Ê¤é
(Î㤨¤ÐGC ¤¬n ²óµ¯¤³¤ë´ÖÀ¸¤»Ä¤Ã¤¿¤é)¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏµìÀ¤Âå¥Ò¡¼¥×¤Ë°Ü¤µ¤ì¤ë(ÅÂÆ²Æþ¤ê¡¢¤Þ¤¿¤Ïpromote ¤È¸Æ¤Ö)¡£
¤µ¤Æ¡¢minor collection ¤Ë¤ª¤¤¤Æ¤ÏµìÀ¤Âå¥Ò¡¼¥×Ãæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¹¥¥ã¥ó¤¹¤ëɬÍפ¬¤Ê¤¤(µìÀ¤Â奪¥Ö¥¸¥§¥¯¥È¤Ï̵¾ò·ï¤Ë¡ÖÀ¸¤¡×¤È¤ß¤Ê¤µ¤ì¤ë)¡£
¿Þ¤Ç¤Ï¥ª¥Ö¥¸¥§¥¯¥Èb °Ê¹ß¤Îõº÷¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢minor collection ¤Ï¥Ò¡¼¥×Á´ÂΤòõº÷¤¹¤ë¤è¤ê¤â®¤¯½ªÎ»¤¹¤ë¡£
Æþ¤ìÂØ¤ï¤ê¤Î·ã¤·¤¤¿·À¤Âå¥Ò¡¼¥×¤ÈÂоÈŪ¤Ë¡¢µìÀ¤Âå¥Ò¡¼¥×¤ÏÅÂÆ²Æþ¤ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤æ¤Ã¤¯¤ê¤ÈËþ¤¿¤µ¤ì¤Æ¤¤¤¯¡£
¤ä¤¬¤ÆµìÀ¤Âå¥Ò¡¼¥×¤µ¤¨°ìÇդˤʤ俤顢¤½¤³¤Ç¤Ï¤¸¤á¤Æ¡¢¥Ò¡¼¥×Á´ÂΤòõº÷¤¹¤ëGC(major collection) ¤ò»î¤ß¤ë¡£
Generational GC ¤ò¼ÂÁõ¤¹¤ëºÝ¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÍ·ê¤Ëµ¤¤ò¤Ä¤±¤ëɬÍפ¬¤¢¤ë¡£
Minor collection¤ò¹Ô¤Ê¤¦ºÝ¤Ë¡¢µì¢ª¿·¤Î¥Ý¥¤¥ó¥¿¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£
¤¿¤È¤¨¤Ðc ¢ª d ¤Î¥Ý¥¤¥ó¥¿¤Ëµ¤ÉÕ¤«¤Ê¤¤¤È¡¢Åþã²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥Èd ¤ò´Ö°ã¤Ã¤Æ²òÊü¤·¤Æ¤·¤Þ¤¦¡£
¾å¿Þ¤Î¾ì¹ç¡¢GC ¤Ï¿·À¤Â夨¤Î¥Ý¥¤¥ó¥¿¤ò»ý¤Ã¤Æ¤¤¤ëc¤Èe ¤òÁ´¤Æ³Ð¤¨¤Æ¤ª¤¡¢
minor collection ¤Ï¤½¤ì¤é¤â¥ë¡¼¥È¤È¸«¤Ê¤¹¡£¤³¤ÎÌÜŪ¤Î¤¿¤á¤Ë(incremental GC¤ÎÀá¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ê)
write barrier ¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ÉáÃʤ«¤éµì¢ª¿·¤Î¥Ý¥¤¥ó¥¿¤¬¤Ç¤¤¿¤«¤É¤¦¤«¤òÁ´¤Æ³Ð¤¨¤Æ¤ª¤«¤Í¤Ð¤Ê¤é¤Ê¤¤¡£
Generational GC ¤Ë¤ª¤±¤ëwrite barrier¤Ë¤Ï¡¢remembered list¡¢remembered set¡¢card marking¡¢page marking¤¬¤¢¤ë¡£
¤½¤ì¤Ï¡Ö¸Å¤¯¤«¤éÀ¸¤»Ä¤Ã¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤½¤Î¤Þ¤ÞÀ¸¤»Ä¤ê¤ä¤¹¤¯¡¢¿·¤·¤¯³ÎÊݤµ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Û¤É¤¹¤°¤Ë¥´¥ß¤Ë¤Ê¤ê¤ä¤¹¤¤¡×(*)
¤È¤¤¤¦·¹¸þ¤Ç¤¢¤ë¡£
GC ¤Î¼Â¹Ô¸úΨ¤ÏÀ¸¤»Ä¤ë¥ª¥Ö¥¸¥§¥¯¥È¤¬¾¯¤Ê¤¤¤Û¤É¤è¤¤¤Î¤À¤«¤é¡¢
¸Å¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Û¤¦¤Ã¤Æ¤ª¤¤¤Æ(̵¾ò·ï¤ËÀ¸¤»Ä¤ë¤È¤ß¤Ê¤·¤Æ) ¿·¤·¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ò½ÅÅÀŪ¤Ëõº÷¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÍø±×¤¬ÆÀ¤é¤ì¤½¤¦¤Ç¤¢¤ë¡£
Generational GC (À¤Âå·¿GC) ¤Ï¡¢¿·¤·¤á¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¥Ò¡¼¥×¤È¡¢¸Å¤á¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î¥Ò¡¼¥×¤òÍѤ¤¤ë(¾å¿Þ)¡£
Copying GC ¤ò´ð¤Ë¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¿Þ¤Ë¤Ï¼¨¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢¿·À¤Âå¤Î¥Ò¡¼¥×¤ÈµìÀ¤Âå¤Î¥Ò¡¼¥×¤Î¤½¤ì¤¾¤ì¤¬from/to ¤Ë2 Åùʬ¤µ¤ì¤ë¡£
¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Þ¤º¿·À¤Âå¥Ò¡¼¥×¤Ë³ÎÊݤµ¤ì¤ë¡£¿·À¤Âå¥Ò¡¼¥×¤¬°ìÇդˤʤ俤顢¥Ò¡¼¥×Á´ÂΤÎGC¤ò¹Ô¤Ê¤¦Âå¤ï¤ê¤Ë¡¢¿·À¤Âå¥Ò¡¼¥×¤À¤±¤òÂоݤȤ·¤¿GC(minor collection) ¤ò¹Ô¤Ê¤¦¡£
Minor collection ¤ò·«¤êÊÖ¤·¤¿·ë²Ì¡¢¤¢¤ëÄøÅٰʾåĹ¼÷Ì¿¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤¬¸«¤Ä¤«¤Ã¤¿¤Ê¤é
(Î㤨¤ÐGC ¤¬n ²óµ¯¤³¤ë´ÖÀ¸¤»Ä¤Ã¤¿¤é)¡¢¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏµìÀ¤Âå¥Ò¡¼¥×¤Ë°Ü¤µ¤ì¤ë(ÅÂÆ²Æþ¤ê¡¢¤Þ¤¿¤Ïpromote ¤È¸Æ¤Ö)¡£
¤µ¤Æ¡¢minor collection ¤Ë¤ª¤¤¤Æ¤ÏµìÀ¤Âå¥Ò¡¼¥×Ãæ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¹¥¥ã¥ó¤¹¤ëɬÍפ¬¤Ê¤¤(µìÀ¤Â奪¥Ö¥¸¥§¥¯¥È¤Ï̵¾ò·ï¤Ë¡ÖÀ¸¤¡×¤È¤ß¤Ê¤µ¤ì¤ë)¡£
¿Þ¤Ç¤Ï¥ª¥Ö¥¸¥§¥¯¥Èb °Ê¹ß¤Îõº÷¤Ï¹Ô¤Ê¤ï¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢minor collection ¤Ï¥Ò¡¼¥×Á´ÂΤòõº÷¤¹¤ë¤è¤ê¤â®¤¯½ªÎ»¤¹¤ë¡£
Æþ¤ìÂØ¤ï¤ê¤Î·ã¤·¤¤¿·À¤Âå¥Ò¡¼¥×¤ÈÂоÈŪ¤Ë¡¢µìÀ¤Âå¥Ò¡¼¥×¤ÏÅÂÆ²Æþ¤ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¤æ¤Ã¤¯¤ê¤ÈËþ¤¿¤µ¤ì¤Æ¤¤¤¯¡£
¤ä¤¬¤ÆµìÀ¤Âå¥Ò¡¼¥×¤µ¤¨°ìÇդˤʤ俤顢¤½¤³¤Ç¤Ï¤¸¤á¤Æ¡¢¥Ò¡¼¥×Á´ÂΤòõº÷¤¹¤ëGC(major collection) ¤ò»î¤ß¤ë¡£
Generational GC ¤ò¼ÂÁõ¤¹¤ëºÝ¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÍ·ê¤Ëµ¤¤ò¤Ä¤±¤ëɬÍפ¬¤¢¤ë¡£
Minor collection¤ò¹Ô¤Ê¤¦ºÝ¤Ë¡¢µì¢ª¿·¤Î¥Ý¥¤¥ó¥¿¤ËÃí°Õ¤¬É¬ÍפǤ¢¤ë¡£
¤¿¤È¤¨¤Ðc ¢ª d ¤Î¥Ý¥¤¥ó¥¿¤Ëµ¤ÉÕ¤«¤Ê¤¤¤È¡¢Åþã²Äǽ¤Ê¥ª¥Ö¥¸¥§¥¯¥Èd ¤ò´Ö°ã¤Ã¤Æ²òÊü¤·¤Æ¤·¤Þ¤¦¡£
¾å¿Þ¤Î¾ì¹ç¡¢GC ¤Ï¿·À¤Â夨¤Î¥Ý¥¤¥ó¥¿¤ò»ý¤Ã¤Æ¤¤¤ëc¤Èe ¤òÁ´¤Æ³Ð¤¨¤Æ¤ª¤¡¢
minor collection ¤Ï¤½¤ì¤é¤â¥ë¡¼¥È¤È¸«¤Ê¤¹¡£¤³¤ÎÌÜŪ¤Î¤¿¤á¤Ë(incremental GC¤ÎÀá¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ê)
write barrier ¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢ÉáÃʤ«¤éµì¢ª¿·¤Î¥Ý¥¤¥ó¥¿¤¬¤Ç¤¤¿¤«¤É¤¦¤«¤òÁ´¤Æ³Ð¤¨¤Æ¤ª¤«¤Í¤Ð¤Ê¤é¤Ê¤¤¡£
Generational GC ¤Ë¤ª¤±¤ëwrite barrier¤Ë¤Ï¡¢remembered list¡¢remembered set¡¢card marking¡¢page marking¤¬¤¢¤ë¡£
- remembered list
- remembered set
- card marking
- page marking
- Minor collection ¤Î¼Â¹Ô»þ´Ö¤Ï¥Ò¡¼¥×Á´ÂΤÎGC ¤ËÈæ¤Ùû¤¤¤Î¤Ç¡¢¥×¥í¥°¥é¥à¤ÎÄä»ß»þ´Ö¤ò²þÁ±¤Ç¤¤ë¡£
- ¾å½Ò¤Î(*) ¤È¤¤¤¦·¹¸þ¤¬À®¤êΩ¤Ä¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ë¤ª¤¤¤Æ¡¢¥È¡¼¥¿¥ë¼Â¹Ô»þ´Ö¤ò²þÁ±¤Ç¤¤ë¡£
- major collection ¤¬µ¯¤³¤Ã¤Æ¤·¤Þ¤¨¤ÐŤ¯Ää»ß¤·¤Æ¤·¤Þ¤¦¡£
- ¾å½Ò(*) ¤ÎµÕ¤Î·¹¸þ¤Ë¤¢¤ë(¸Å¤¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊý¤¬Àè¤Ë»à¤Ë¤ä¤¹¤¤) ¥×¥í¥°¥é¥à¤Ç¤ÏµÕ¸ú²Ì¤È¤Ê¤ê¤¦¤ë¡£
remebered set¤Ï write barrier ¤Ë¤è¤êÁý¤¨¤Æ¤¤¤¡¤major collection ¤ÎºÝ¤Ë°ì¿·¤µ¤ì¤ë¡¥
¶ñÂÎŪ¤Ê¼ê½ç¤ò°Ê²¼¤Ë½Ò¤Ù¤ë¡¥
¤³¤ì¤Ë¤è¤ê¡¤À¸¤¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¤ß¤Î¿·¤·¤¤ remebered set ¤¬¹½ÃÛ¤µ¤ì¤ë¡¥
¶ñÂÎŪ¤Ê¼ê½ç¤ò°Ê²¼¤Ë½Ò¤Ù¤ë¡¥
- major collection ¤ÎÁ°¤Ë remebered set ¤òÇË´þ¤¹¤ë¡¥
- mark ¤òÉÕ¤±¤ëºÝ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤Î remebered set ¥Õ¥é¥°¤ò³Îǧ¤¹¤ë¡¥
- remenbered set ¥Õ¥é¥°¤¬Î©¤Ã¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ì¤Ð¡¤remebered set¤ËÄɲ乤롥
¤³¤ì¤Ë¤è¤ê¡¤À¸¤¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¤ß¤Î¿·¤·¤¤ remebered set ¤¬¹½ÃÛ¤µ¤ì¤ë¡¥
- ¥«¥Æ¥´¥ê¡§
- ¥Ñ¥½¥³¥ó
- ¥¬¡¼¥Ù¥Ã¥¸¥³¥ì¥¯¥¿¡ÊGC¡Ë
¥³¥á¥ó¥È¤ò¤«¤¯