Issue #7095 has been updated by authorNari (Narihiro Nakamura). ???????????®ã?¬ã????¥ã?¼ã??????????¨ã?????????????¾ã??ï¼? kosaki (Motohiro KOSAKI) wrote: > 2012/10/1 SASADA Koichi <ko1 / atdot.net>: > > (2012/10/02 0:21), authorNari (Narihiro Nakamura) wrote: (snip) > > ???????ªã?£ã?¦ã????ªã??ï¼???¨ã??????????¨ã?§ï???????¡ã?ªã????????????????¤ã????ªã????®ã?§ã?????????????? > > ????????ªã???????¨æ???????¾ã??ï¼ ????´ã????????ï¼??????????????????¾ã???????¢ç?®ã?«èª?????§ã?ªã???????©ï??ï¼? > > > > > > ?????¾ã????¬è³ª????????ªã???????§ã?????ï¼? > > - page ??¨ã?????è¨??????¯é?©å????§ã???????????ï¼? > > ??ªã????? page size ??? 4k??¨æ±º????????£ã?¦é??ç®?????????¦ã?????????????ªã?»ã?»ã?? > malloc???使ã?£ã?¦ã???????®ã?§ã????¼ã?¸ã?µã?¤ã?ºã?????å°???????¦ã????ªå½±??¿ã???????¾ã????§ã???????«ã?ªã???????? > > > - +#ifndef __LP64__ ??¯æ?¬å????«ã???????????????????????????????????ï¼ ????? -2 ??£ã?¦ä??ï¼? > > Linux + glibc???å®???????malloc header???size_t*2??ªã?®ã?§ã???????§å??????¨ã?????決ã???????¡ã?³ã?¼ã????«è???????¦ã????¾ã????»ã?»ã?? ????????????æ°???«ã??????? ?¾ã???????¦ã?? ?????®è¾º??¯ã???????¾ã????¹æ????ªã??????????ªã?®ã?§ã????ã????¼ã?«æ±º????????¡ã??????????¨æ???????¾ã????? page??¯ç???????????????®ã??chunk??¨ã?????segment???????????§ã???????ã?? > > - GC ??®åº¦??«æ? ?? mallocï¼??????????????????£ã??ï¼ ????????1?????¼ã?¸ã?¯æ???????? alloc ?????? > > ??????????????®ã????ªï?? > > äº?度ã??free?????ªã????¦ç?¥ã?¨ã?????????????¡ã?ªã?®ã????ªã?¼ã?¨ã??????????¾ã???????????????????mark??®ã?¨ã????«ã?¹ã?¿ã????¯ã????????以ä????????使ã???ªã????£ã?????ï¼??????¼ã?¸ã?????è§£æ?¾ã???????¨ã????«ã????¦å???????«é?·ã?????調æ?´ã????????????????«ã???????¨ã?? > ä»???¯æ±º????????¡ã??4??¤ã?????free?????ªã????¦ç?¥ã?«ã?ªã?£ã?¦ã????¾ã????? å° ???????®ã?????????????????使ç?¨ã?????stack??®é?·ã????«å???????¦å? ¸®??????????????«ä¿®æ£ã??????????¨æ???????¾ã????? ï¼?????????ªã?«æ???????§ã?¯ã?ªã????¨æ???????¾ã????®ã?§ï?? ---------------------------------------- Bug #7095: Non-recursive marking https://bugs.ruby-lang.org/issues/7095#change-29933 Author: authorNari (Narihiro Nakamura) Status: Open Priority: Normal Assignee: authorNari (Narihiro Nakamura) Category: core Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-09-25 trunk 37032) [x86_64-linux] nari??§ã????? GC??®ã????¼ã?ã?³ã?°ã?§é?¢æ?°ã?®å??帰å?¼ã?³å?ºã?????使ã???ªã???????¼ã?¸ã?§ã?³ã????¸ã????¦ã?¿ã?¾ã???????? å·®å??: https://github.com/authorNari/ruby/compare/non_recursion_marking ?????????: https://github.com/authorNari/ruby/compare/non_recursion_marking.patch = ??¶ã?®å????? ??¨ã?®ã????¼ã?¯ã?¯ã????ºæ?¬ç????«ã?¯ã?ªã????¸ã?§ã?¯ã?????å???ªã????¸ã?§ã?¯ã?????å«ã?ªã????¸ã?§ã?¯ã?? ??¨ã??gc_mark()??????帰ç????«å?¼ã?³å?ºã????¨ã?????å®?è£???«ã?ªã?£ã?¦ã????¾ã????? ???????????ªã????¸ã?§ã?¯ã?????????????±ã????°ã?©ã??????????£ã?¦ã???????´å????«ã?¯ã????·ã?³ã?¹ã?¿ã????? ???溢ã????¦ã????¾ã????®ã?§ã??GC??????????????¹ã?¿ã????¯ã??溢ã?????????????¨å?¤æ?ã???????¨ã?????以ä?? ??¯ã????·ã?³ã?¹ã?¿ã????¯ã??使ã???ªã????¹æ????§ã????¼ã?¯ã??è¡?????????¨ã????¾ã????? ??¨ã?®ã????¼ã?¯ã?«ã?¯æ¬¡???2??¤ã?®å?????????????¨è???????¦ã????¾ã????? 1. ?????§ã?®æ·±?????ªã????¸ã?§ã?¯ã?????å¤???????????¨ã????¼ã?ã?³ã?°ã?????????ªã?? 2. ??¹ã?¿ã????¯ã?ªã?¼ã????¼ã????ã?¼ã??æ¤???¥ã???????¢æ?°ã?®ç²¾åº¦ã????ªã?? 1.??«ã?¤ã????¦ã?§ã?????????????§ã?¤ã?«ã?»ã?¼ã????§ã??????????·ã?³ã?¹ã?¿ã????¯ã??使ã???ªã???????¼ã?¯ã?? ??¹æ??????????ªã?®å?´å??????????¼ã???????¨èµ°??»ã????ªã?®ã?§ã????¯ã?¼ã?¹ã????±ã?¼ã?¹ã??çµ?æ§?????????§ã????? ?????????????????§ã?®æ·±????????¼ã?¿ç¾¤?????????æ®????ç¶?????????????GC???????????¾ã????¾ã?ªã?®ã?§ã????? ??¯ã???????¾ã??å¬????????ªã????§ã????? 2.??«ã?¤ã????¦ã?§ã????????以ä????®å?±å????§ã????????????????? https://bugs.ruby-lang.org/issues/3781 ??¨ã?®ã????·ã?³ã?¹ã?¿ã????¯ã?®ã?ªã?¼ã????¼ã????ã?¼ã????§ã????¯ã?¯ã???????ªã??精度??§ã???????ªã???? ??¦ã????¾ã??????????®ã???????¹ã?¿ã????¯é???????????常ã?«å?????????´å??ï¼??????¨ã????? FIBER_USE_NATIVE ????????¹ã?ªã?±ã?¼ã?¹ï????§ã?¯ã???????ªã??????¼ã?ã?³ã?°ã?§ã?®ã????§ã????¯ã??æ¼? ?????¦ã????¾ã??????????¾ã??SEGV????????????????§ã????? # ä¸?è¨???®ã????±ã???????§ã?¯é??å¼µã?£ã?¦ç?´ã????¦ã?¿ã????®ã?§ã?????????????§ã????ªã??SEGV??£ã?¦ã????? # ?????¨ã???????²ã?????çµ?è«???«ã?ªã????¾ã???????? = ??¹å??æ¡? ??ªå????§ã?¹ã?¿ã????¯æ????????ä½????????????????使ã?£ã?¦é?????帰ç????«ã????¼ã?ã?³ã?°ã???????¨ã???????? ???ä»??????®æ??æ¡???§ã???????¢æ?°ã?«ã????????帰å?¼ã?³å?ºã?????使ã???ªã????®ã?§ä??è¨???®å????¯ã?ªã?? ??ªã????¾ã????? = ???度æ?¹å?? mark benchmark OPTS="-r 5" ???èµ°ã???????¦ã?¿ã????¨ã????????????????ªã????«æ?©ã???ªã?£ã?¦ã?? ???????????§ã????? https://gist.github.com/3806667 (target 0???ä¿®æ£???, target 1?????????帰ç???????¼ã?ã?³ã?°ï?? "average total difference is -7.793935319666676" ??¾ã??????????§é?¢ä????®æ·±?????ªã????¸ã?§ã?¯ã????????????«ä??????????³ã???????¼ã?¯ã?§æ???°æ?ªã????¦ã?? ??????ï¼????????????¾ã????§ã?????ï¼???????帰ç???????¼ã?ã?³ã?°ã?®ã?»ã???????©ã???ªã????¾ã???????? https://gist.github.com/3812118 depth???240??®å?´å?? origin ç·?GC??????(sec): 1.96 non-recursive ç·?GC??????(sec): 1.87 depth???500??®å?´å?? origin ç·?GC??????(sec): 14.73 non-recursive ç·?GC??????(sec): 5.49 -- http://bugs.ruby-lang.org/