id:hitode909 ãã㨠id:hatz48 ããã®ä¸äººã®ãã¼ã ãC0-100%ãã¨ãã¦ISUCON6ã«åå ãããååå è ã®ã¿ã®ãã¼ã ã§è¨èªã¯Perlãæ®æ®µä¼ç¤¾ã§ã¯è¯ãè¨è¨èãããéçºããã¼ããæãã«ãã¦ãããã¿ãããªã®ãå¾æãªã¡ã³ãã¼ã§ãä»åããã¹ãæ¸ãããCIã¾ãããããããã¤ãéãã®éçºã§ãã£ã¦ãããã¨ãããã¼ãã§åå ããã
çµæã¨ãã¦ã¯ãæé«38000ç¹ãããã¾ã§ãã£ããã®ã®äºé¸æéãæçµã¹ã³ã¢è¨ç®ã®æç¹ã§ã¯ã»ã¨ãã©FAILãã¦ãæãã§ã300ç¹ãããã ã£ãããããã
æããã¼ã ã®æ§åã¯hitodeããã®ã¨ã³ããªã詳ããã
æ å½
èªåã¯ãµã¼ããªãã¬ã¼ã·ã§ã³ãæ å½ãããããã¨ãããããã¨ããªããªã£ã¦ããã®ã§ãã¢ããªã±ã¼ã·ã§ã³ã³ã¼ããæ¸ãã¦ããã
ãã¼ã ã¡ã³ãã¼ã¯ã¿ãªã¢ããªã±ã¼ã·ã§ã³ã¨ã³ã¸ãã¢ã§ãæ®æ®µããã¤ã³ãã©çãªä»äºããã¦ãã人ããã¼ã ã«ããªãã£ãã誰ããç¹å¥å¾æã¨ãããã¨ããªãã®ã§ãã¨ããããæ å½æ±ºãã¦äºåã«æºåãã¦ããã¨ããæãã ã£ãã
幸ãä»åã®åé¡ã¯ãããªã«ãµã¼ããªãã¬ã¼ã·ã§ã³ãå¹ãã¨ããé°å²æ°ã§ããªãã£ãã®ã§ãéå»ã®ISUCONã®åçä¾ãªã©ãåèã«ããã«ã¦ã§ã¢é¡ãæ´åããã¨ããæãã§ãªãã¨ããªã£ããkazeburoããã®è¨å®ãã©ãã©ãå
¥ãã¦ããã¨ããæã (
ISUCON4 予選でアプリケーションを変更せずに予選通過ラインを突破するの術 - Hateburo: kazeburo hatenablog )
é 調ãªåå
ååã¯äºåã®æºåã®å¹æããã£ã¦ãã¡ããã¡ãã¹ã ã¼ãºã«ãããããã¨ãã§ãããã¯ããã«ãããã¨ã®ãã§ãã¯ãªã¹ããä½ã£ã¦ãã£ãã®ã§ãããã¦ãä¸å¯§ã«ãããããã¨ãã§ããã
âããããæã
- åæå®è£ ãèµ·åãã¦ããæä½éã®nginxããã¦ãä¸åº¦ã ããã³ããã¾ããã¦ãªã¯ã¨ã¹ãã®å¾åã¿ã
- CIããããã¡ã¤ã©ãç¨æãã
- ã¢ããªã±ã¼ã·ã§ã³ã³ã¼ããå¼ãã§æªããããªã¨ããã«ããããã¤ãã¦ãã
ã¿ãããªã¨ãããåæ ãã¦ä¸æ°ã«ãããã¦ãä¸æéããããããã«ä¸æéããããããã¤ã§ããããã«ããããã³ã¼ããèªã¿è¾¼ãã¨ããããã¨ããã§ãå ·ä½çãªæ¹åã«å ¥ãããã ãªã¨ãªã£ãã
ãæ¼é ã«ã¯ãªã¼ãã¼ãã¼ãã«ã§ã¦ãããããã®ã¹ã³ã¢ã«ãªã£ãã®ã§ããã¤ã¿ãããã¦æ¼é£ä¼æ©ã«ã¯ãã£ããããã
ãã£ãã·ã¥ã®æµ·ã«æ²ãã å¾å
æ¼é£ããã¹ãªããä½æ¦ä¼è°ããã¦ããã¯ãhtmlifyãè¯ããã¦ããã®ãè¯ãããã ã¨ãããã¨ã§æ¹åãã¯ãããããªã¯ã¨ã¹ãã®å¾åãã¿ãã¨è¡¨ç¤ºã«æ¯ã¹ã¦æ´æ°ã®é »åº¦ãæ¯è¼çä½ãã£ãã®ã§ããã£ãã·ã¥ãå¹ãããã¨ããã£ã¦åãçµã¿ã¯ãããããã®ã¨ã
- htmlify ãããçµæããã£ãã·ã¥ãã
- æ£è¦è¡¨ç¾ã®æ§ç¯ã«Regexp::Assembleãã¤ãã
- æ£è¦è¡¨ç¾ããã£ãã·ã¥ãã
ãªã©ãåæé²è¡ã§ãããã¦ããã ãã©ããããããã¾ãè¯ããªãã£ãããããã®å¤æ´ãå ¨é¨ããã¦ãã³ãã«ãããã¨ãããã¡ããã¡ãFAILãã¾ããæãã«ãªã£ã¦ãã¾ã£ããFAILã®åå ãä¸å¯§ã«ã¤ã¶ãã¦ããã¨ããä½æ¦ã«ã§ããã©ã2æéãããã¯ã¾ã£ã¦ãã¾ã£ã¦ã ãã¶æéãç¡é§ã«ãã¦ãã¾ã£ãã
æéçãªä½è£ããªããªã£ããã¨ã§ãæ°ãããã¨ãã¯ããã決æãã§ããªããªã£ã¦ãã¾ã£ããååèªæ£ã«ãªã£ã¦ã競æçµäº30ååã«keywordã®æåæ°ãã«ã©ã ã«ããã¦sortã«ä½¿ãããã«ããå¤æ´ããããã¨ããä¸æ°ã«15000ç¹ãããç¹æ°ãããã£ã¦å æ°ãã§ã¦ãããã®ã®ãæãã§ã«é ãã§ãã£ãã
åç
ä¸ã¤ä¸ã¤ã®æ½çã¯æ¹éã決ã¾ãã°ãã°ããå®è£ ã§ããã®ã ãã©ããã£ãã·ã¥ã¾ããã§ãã¾ããããªããªããæã¤æããªããªã£ãã¨ãã«ãã¼ã ã®æ´»åãã»ã¼åæ¢ãã¦ãã¾ãããã¾ãããã©ã¼ãã³ã¹ãã ããªããªã£ã¦ãã¾ã£ãã
å ¨å¡ãåãæ¹åãåãã¦ãããã¯ã¼ãã§ããã©ããã®æ¹åããã¹ã£ã¦ãã¾ã£ãã¨ããæãããããæéãããã¦ãããããã¨ããå ¨å¡ãã£ãã·ã¥ã«åããã«å¥ã®ãã¨ããã¦ã人ãã¤ããã¨ãããã¨ãããå°ãå®å®æãã§ããããããªãã
ææ³
ããã¦èªåãã¡ã®èããã¢ã¤ãã£ã¢ãå ¨é¨ãã¾ãå®æ½ãããã£ããã©ãå®ç¾ãã¯ã¼ã足ããªãã¦ãéåã°ã¨ããæãã§çµãã£ã¦ãã¾ãããªããããããã®ãããããã¨ã³ã¼ããæ¸ãã¦ãã¦ã¯ãããªããæ¥å¹´ãã£ããä¸ç¢å ±ãããã
ååå ã¨ãããã¨ã§ãã¯ããã¦ISUCONãä½é¨ãããã©ããããã¯éå¶å¤§å¤ã ãªã¨æãããã¿ããªçå£ã«ãã£ã¦ãã®ã§ãã¹ããã¨ãã°ãæãããããéå¶ã®ã¿ãªãã¾ãæ¬å½ã«ãããã¨ããããã¾ããã
以ä¸ã¯ä¼ç¤¾ã®åçä¼ã®å¾ã§ã®ææ³ã§ãã
å®è£ åãã³ãã¥ãã±ã¼ã·ã§ã³åããªãã®ã ãããã¯ããããããç´ãã ã¨ãããã¨ã«ãªã£ã
— hakobe (@hakobe) 2016å¹´9æ18æ¥