ç§ã®ååã¯DanilMukhametzyanovã§ãBadooã§ããã¯ãšã³ãéçºè ãšããŠ7幎éåããŠããŸãããã®éãç§ã¯ãªããšã倧éã®ã³ãŒããäœæããŠå€æŽããããšãã§ããŸãããããæ¥ããããŒãžã£ãŒãç§ã®ãšããã«ãã£ãŠæ¥ãŠãããèšããŸãããäœãã远å ããã«ã¯ãäœããåé€ããå¿ èŠããããŸããã
ããŠãããã¯åãªãåè«ã§ã-圌ã¯ãããèšããªãã£ããããã¯æ®å¿µã ïŒ Badooã¯ãäŒç€Ÿã®åç¶æéå šäœã«ããã£ãŠã空çœè¡ãšéãæ¬åŒ§ãé€ããŠã550äžè¡ãè¶ ããè«çããžãã¹ã³ãŒããèç©ããŠããŸããã
éèªäœã¯ããã»ã©æããã®ã§ã¯ãããŸããã圌ã¯åãã€ããé£ã¹ç©ãæ±ããŸããããããã2ã3幎åãç§ã¯ãŸããŸãèªãã§ãå®çšŒåç°å¢ã§ã¯å®éã«ã¯æ©èœããªãã³ãŒããèŠã€ããããšããŠããããšã«æ°ã¥ãå§ããŸãããã€ãŸããå®éã«ã¯æ»ãã§ããŸãã
ãã®åŸåã¯ç§ã ãã§ãªãæ°ã¥ããŸãããBadooã¯ãé«çµŠã®ãšã³ãžãã¢ãåžžã«ãããã³ãŒãã«æéãæµªè²»ããŠããããšã«æ°ã¥ããŸããã
Badoo PHP MeetupïŒ4ã§ãã®è¬æŒãããŸãã
ãããã³ãŒãã¯ã©ãããæ¥ãã®ã§ããïŒ
ç§ãã¡ã¯åé¡ã®åå ãæ¢ãå§ããŸããããããã2ã€ã®ã«ããŽãªã«åããŸããã
- ããã»ã¹-éçºã®çµæãšããŠçãããã®ã
- å±¥æŽ-ã¬ã¬ã·ãŒã³ãŒãã
ãŸããæ°ããªåé¡ã®çºçãé²ãããã«ãããã»ã¹ãœãŒã¹ãåè§£ããããšã«ããŸããã
A / Bãã¹ã
Badooã¯4幎åã«A / Bãã¹ããç©æ¥µçã«äœ¿çšãå§ããŸãããçŸåšãçŽ200ã®ãã¹ããåžžã«å®è¡ãããŠããããã¹ãŠã®è£œåæ©èœããã®æé ãå®è¡ããŸãã
ãã®çµæã4幎éã§çŽ2000ä»¶ã®å®äºãããã¹ããèç©ããããã®æ°åã¯çµ¶ããå¢å ããŠããŸãã圌女ã¯ãåãã¹ãããã¯ãå®è¡ãããŠãããããŸã£ããå¿ èŠãšãããŠããªãæ»ãã ã³ãŒãã®äžéšã§ããããšãç§ãã¡ã«æããããŸããã
ãã®åé¡ã®è§£æ±ºçã¯ããã«çŸããŸãããA/ Bãã¹ããå®äºããåŸãã³ãŒããã«ããããããã®ãã±ãããèªåçã«äœæãå§ããŸããã
ãã±ããã®äŸ
ãããã人çèŠå ã宿çã«ããªã¬ãŒãããŸãããäœåºŠãäœåºŠãå®è¡ããç¶ãããã¹ãã³ãŒããèŠã€ããŸãããã誰ãããã«ã€ããŠèããã«ãã¹ããå®äºããŸããã
次ã«ã峿 Œãªãã¬ãŒã ã¯ãŒã¯ããããŸãããåãã¹ãã«ã¯çµäºæ¥ãå¿ èŠã§ãããããŒãžã£ãŒããã¹ãçµæãèªãã®ãå¿ããå ŽåããããŒãžã£ãŒã¯èªåçã«åæ¢ããŠãªãã«ããŸãããããŠããã§ã«è¿°ã¹ãããã«ãæ©èœã®ããžãã¯ã®å ã®ããŒãžã§ã³ãç¶æããªããããã±ãããåãåãããã®ãã±ãããèªåçã«äœæãããŸããã
ãã®ãããªåçŽãªã¡ã«ããºã ã®å©ããåããŠãç§ãã¡ã¯äœæ¥ã®å€§ããªå±€ãåãé€ããŸããã
ã¯ã©ã€ã¢ã³ãã®å€æ§æ§
åœç€Ÿã§ã¯ããã€ãã®ãã©ã³ãããµããŒããããŠããŸããããµãŒããŒã¯1ã€ã§ããåãã©ã³ãã¯ãWebãiOSãAndroidã®3ã€ã®ãã©ãããã©ãŒã ã§è¡šãããŸãã iOSãšAndroidã§ã¯ãæ¯é±ã®éçºãµã€ã¯ã«ããããŸããé±ã«1åãæŽæ°ãšãšãã«ãåãã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ãåãåããŸãã
ãã®ã¢ãããŒãã§ã¯ã1ãæã§ãµããŒããå¿ èŠãªæ°ããããŒãžã§ã³ãçŽ12åããããšã¯å®¹æã«æšæž¬ã§ããŸãããŠãŒã¶ãŒãã©ãã£ãã¯ã¯ãããã®éã§äžåäžã«åæ£ãããŸãããŠãŒã¶ãŒã¯ããããŒãžã§ã³ããå¥ã®ããŒãžã§ã³ã«åŸã ã«åãæ¿ããŠããŸããäžéšã®å€ãããŒãžã§ã³ã«ã¯ãã©ãã£ãã¯ããããŸãããéåžžã«å°ãããããä¿å®ãå°é£ã§ããããã¯é£ãããŠåœ¹ã«ç«ããªãã
ããã§ããµããŒããããããŒãžã§ã³ã®æ°ãæ°ãå§ããŸãããã¯ã©ã€ã¢ã³ãã«ã¯ããœããå¶éãšããŒãå¶éã®2ã€ã®å¶éããããŸãã
ãœããå¶éã«éãããšïŒ3ã€ãŸãã¯4ã€ã®æ°ããããŒãžã§ã³ããã§ã«ãªãªãŒã¹ãããŠããŠãã¢ããªã±ãŒã·ã§ã³ããŸã æŽæ°ãããŠããªãå ŽåïŒããŠãŒã¶ãŒã«ã¯ããŒãžã§ã³ãå€ããªã£ãŠããããšãèŠåããç»é¢ã衚瀺ãããŸããããŒãå¶éã«éãããšïŒã¢ããªã±ãŒã·ã§ã³ãšãã©ã³ãã«å¿ããŠãããã¯çŽ10ã20ã®ãæ¬ èœãããããŒãžã§ã³ã§ãïŒããã®ç»é¢ãã¹ããããããªãã·ã§ã³ãåé€ããã ãã§ããããã¯ããããã³ã°ã«ãªããŸãïŒããã§ã¢ããªã±ãŒã·ã§ã³ã䜿çšããããšã¯ã§ããŸããã

ããŒãå¶éã®ç»é¢
ãã®å Žåãã¯ã©ã€ã¢ã³ãããã®èŠæ±ãåŠçãç¶ããããšã¯ç¡æå³ã§ããã¯ã©ã€ã¢ã³ãã«ã¯ç»é¢ãã衚瀺ãããŸããã
ããããããã§ã¯ãA / Bãã¹ãã®å Žåãšåæ§ã«ããã¥ã¢ã³ã¹ãçããŸãããã¯ã©ã€ã¢ã³ãéçºè ã人ã§ãã圌ãã¯æ°ãããã¯ãããžãŒããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãããã䜿çšããŸã-ãããŠãã°ãããããšãã¢ããªã±ãŒã·ã§ã³ããŒãžã§ã³ã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æ¬¡ã®ããŒãžã§ã³ã§ãµããŒããããªããªããŸãããã ãããµãŒããŒã¯ãããã®èŠæ±ãåŠçãç¶ããå¿ èŠããããããåŒãç¶ãåé¡ãçºçããŸãã
Windows Phoneã®ãµããŒããçµäºããå Žåã®å¥ã®è§£æ±ºçãèãåºããŸããããŠãŒã¶ãŒã«æ¬¡ã®ãããªç»é¢ãçšæããŸãããããªãã¯ãšãŠããã£ãããã§ãïŒããããå¥ã®ãã©ãããã©ãŒã ã䜿ãå§ããããšã¯ã§ããŸããïŒæ°ããã¯ãŒã«ãªæ©èœãå©çšã§ããããã«ãªããŸãããããã§ã¯äœãã§ããŸããããååãšããŠã代æ¿ãã©ãããã©ãŒã ãšããŠåžžã«å©çšå¯èœãªWebãã©ãããã©ãŒã ãæäŸããŠããŸãã
ãã®ãããªåçŽãªã¡ã«ããºã ã«ããããµãŒããŒããµããŒãããã¯ã©ã€ã¢ã³ãããŒãžã§ã³ã®æ°ãå¶éããŸããããã¹ãŠã®ãã©ã³ãããã¹ãŠã®ãã©ãããã©ãŒã ããã®çŽ100ã®ç°ãªãããŒãžã§ã³ã§ãã
æ©èœãã©ã°
ãã ããå€ããã©ãããã©ãŒã ã®ãµããŒããç¡å¹ã«ããããšã§ã䜿çšããŠããã³ãŒããå®å šã«åé€ã§ãããã©ãããå®å šã«çè§£ã§ããŸããã§ããããŸãã¯ãå€ãOSããŒãžã§ã³çšã«æ®ã£ãŠãããã©ââãããã©ãŒã ã¯ãåŒãç¶ãåãæ©èœã䜿çšããŸããïŒ
åé¡ã¯ãAPIãããŒãžã§ã³ç®¡çãããéšåã§ã¯ãªããæ©èœãã©ã°ã®äœ¿çšã«åºã¥ããŠæ§ç¯ãããŠããããšã§ããã©ããã£ãŠããã«ãã©ãçããã®ãããã®ã¬ããŒãããç¥ãããšãã§ããŸãã
2çš®é¡ã®æ©èœãã©ã°ããããŸããããããã«ã€ããŠäŸãæããŠèª¬æããŸãã
ãã€ããŒãªæ©èœ
ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ããèšããŸãããããã«ã¡ã¯ãç§ã§ããåçæçš¿ããµããŒãããŸããããµãŒããŒã¯ãããèŠãŠã次ã®ããã«å¿çããŸããä»ãç§ã¯ããã«ã€ããŠç¥ã£ãŠããŠãããªãã«åçã¡ãã»ãŒãžãéããŸãããããã§ã®éèŠãªæ©èœã¯ããµãŒããŒãã¯ã©ã€ã¢ã³ãã«åœ±é¿ãäžããããšã¯ã§ããªããšããããšã§ãããµãŒããŒããã®ã¡ãã»ãŒãžãåãå ¥ããã ãã§ããµãŒããŒã匷å¶çã«ãªãã¹ã³ããŸãã
ãããã®ãã©ã°ããã€ããŒæ©èœãšåŒã³ãŸããçŸåšã600ãè¶ ããŠããŸã
ãããããã®ãã©ã°ã䜿çšããããšã®ãã¡ãªããã¯äœã§ããïŒå®æçã«ãã¯ã©ã€ã¢ã³ãåŽã ãã§ã¯ã«ããŒã§ããªãéãæ©èœããããŸãããµãŒããŒåŽãããå¶åŸ¡ããå¿ èŠããããŸãããã®ããã«ãä»ã®ã¿ã€ãã®ãã©ã°ãå°å ¥ããŸããã
ã¢ããªã±ãŒã·ã§ã³ã®æ©èœ
åãã¯ã©ã€ã¢ã³ããåããµãŒããŒãã¯ã©ã€ã¢ã³ãã¯æ¬¡ã®ããã«è¿°ã¹ãŠããŸããããµãŒããŒããããªã¹ããªãŒãã³ã°ããµããŒãããããšãåŠã³ãŸãããããããªã³ïŒ "ãµãŒããŒã¯ããããããšãããããèŠããŠãããŸãããšå¿çããŸãããããŠåœŒã¯æ¬¡ã®ããã«ä»ãå ããŠããŸããç§ãã¡ã®ææã®ãŠãŒã¶ãŒã«ãã®æ©èœãèŠããŸãããã圌ã¯åã¶ã§ããããããŸãã¯ïŒãããããŸããããã ãããŸã å«ããŸãããã
ãããã®æ©èœãã¢ããªã±ãŒã·ã§ã³æ©èœãšåŒã³ãŸãããããã¯éãã®ã§ãæ°ã¯å°ãªããªããŸãããããã§ãååã§ãã300ãè¶ ããŸãã
ãããã£ãŠããŠãŒã¶ãŒã¯ã¯ã©ã€ã¢ã³ãã®ããããŒãžã§ã³ããå¥ã®ããŒãžã§ã³ã«ç§»åããŸããããçš®ã®ãã©ã°ãããã¹ãŠã®ã¢ã¯ãã£ããªããŒãžã§ã³ã®ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒãããå§ããŠããŸãããŸãã¯ãéã«ããµããŒããããŠããŸããããããå¶åŸ¡ããæ¹æ³ã¯å®å šã«ã¯æç¢ºã§ã¯ãããŸããïŒ100ã¯ã©ã€ã¢ã³ãããŒãžã§ã³ã900ãã©ã°ïŒããã«å¯ŸåŠããããã«ãããã·ã¥ããŒããäœæããŸããã
èµ€ãåè§ã¯ããã®ãã©ãããã©ãŒã ã®ãã¹ãŠã®ããŒãžã§ã³ããã®æ©èœããµããŒãããŠããªãããšãæå³ããŸããç·-ãã®ãã©ãããã©ãŒã ã®ãã¹ãŠã®ããŒãžã§ã³ããã®ãã©ã°ããµããŒãããŠããŸãããã©ã°ã®ãªã³ãšãªããåãæ¿ããããšãã§ããå Žåã¯ã宿çã«ç¹æ» ããŸããã©ã®ããŒãžã§ã³ã§äœãèµ·ããããèŠãããšãã§ããŸãã
ããã·ã¥ããŒãç»é¢
ãã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ãæ©èœãåãåãããã®ã¿ã¹ã¯ã®äœæãéå§ããŸãããåè¡ã®ãã¹ãŠã®èµ€ãŸãã¯ç·ã®ã»ã«ã«å ¥åããå¿ èŠã¯ãªãããšã«æ³šæããŠãã ããã 1ã€ã®ãã©ãããã©ãŒã ã§ã®ã¿å®è¡ããããã©ã°ããããŸãã 1ã€ã®ãã©ã³ãã«ã€ããŠã®ã¿èšå ¥ããããã©ã°ããããŸãã
ããã»ã¹ã®èªååã¯ããã»ã©äŸ¿å©ã§ã¯ãããŸããããååãšããŠå¿ èŠãããŸãããã¿ã¹ã¯ãèšå®ããããã·ã¥ããŒãã宿çã«ç¢ºèªããã ãã§ããæåã®å埩ã§ã¯ã200ãè¶ ãããã©ã°ãåãåãããšãã§ããŸãããããã¯ãç§ãã¡ã䜿çšãããã©ã°ã®ã»ãŒ4åã®1ã§ãã
ããã§ããã»ã¹ãœãŒã¹ãçµäºããŸããããããã¯ç§ãã¡ã®éçºãããŒã®çµæãšããŠçŸããç§ãã¡ã¯ããããšã®äœæ¥ããã®ããã»ã¹ã«ããŸãçµ±åããŸããã
ã¬ã¬ã·ãŒã³ãŒããã©ãããã
ããã»ã¹ãœãŒã¹ã§ã®æ°ããåé¡ã®çºçã忢ããŸããããããŠãç§ãã¡ã¯é£ãã質åã«çŽé¢ããŸããïŒäœå¹Žã«ãããã£ãŠèç©ãããã¬ã¬ã·ãŒã³ãŒããã©ããããïŒãšã³ãžãã¢ãªã³ã°ã®èгç¹ãããœãªã¥ãŒã·ã§ã³ã«ã¢ãããŒãããŸãããã€ãŸãããã¹ãŠãèªååããããšã«ããŸããããããã䜿çšãããŠããªãã³ãŒããèŠã€ããæ¹æ³ã¯æç¢ºã§ã¯ãããŸããã§ããã圌ã¯å± å¿å°ã®è¯ãå°ããªäžçã«é ããŸãããåœŒã¯æ±ºããŠåŒã°ããã誰ã«ãèªåã®ããšãç¥ãããŸããã
ç§ãã¡ã¯å察åŽããè¡ããªããã°ãªããŸããã§ããïŒç§ãã¡ãæã£ãŠãããã¹ãŠã®ã³ãŒããåããã©ã®éšåãæ£ç¢ºã«å®è¡ããããã«ã€ããŠã®æ å ±ãåéããæ¬¡ã«å転ãè¡ããŸãã
次ã«ãããããŸãšããŠãæå°éã®ã¬ãã«ã§ãã€ãŸããã¡ã€ã«ã«å®è£ ããŸããããã®ããã«ããŠãé©åãªUNIXã³ãã³ããå®è¡ããããšã«ããããªããžããªãããã¡ã€ã«ã®ãªã¹ããç°¡åã«ååŸã§ããŸãã
æ¬çªç°å¢ã§äœ¿çšããããã¡ã€ã«ã®ãªã¹ããåéããããšã¯æ®ã£ãŠããŸãããéåžžã«ç°¡åã§ããã·ã£ããããŠã³æã®ãªã¯ãšã¹ãããšã«ã察å¿ããPHP颿°ãåŒã³åºããŸããããã§è¡ã£ãå¯äžã®æé©åã¯ããã¹ãŠã®ãªã¯ãšã¹ãããªã¯ãšã¹ãããã®ã§ã¯ãªããOPCacheã®ãªã¯ãšã¹ããéå§ããããšã§ããããããªããšãããŒã¿éãéåžžã«å€ããªããŸãã
ãã®çµæãå€ãã®è峿·±ãã¢ãŒãã£ãã¡ã¯ããçºèŠããŸãããããããããæ·±ãåæãããšãããæªäœ¿çšã®ã¡ãœãããæ¬ èœããŠããããšãããããŸããããããã®æ°ã®éãã¯3ã7åã§ããã
1ã€ã®å®æ°ãŸãã¯ã¡ãœããã®ãã¢ã ãã®ããã«ããã¡ã€ã«ãããŒããå®è¡ãã³ã³ãã€ã«ã§ããããšã倿ããŸããããã®åºãªãã®æµ·ã«æšªãããã®ã«ä»ã®ãã¹ãŠã¯åœ¹ã«ç«ããªããŸãŸã§ããã
ã¡ãœããã®ãªã¹ãããŸãšãã
ããããã¡ãœããã®å®å šãªãªã¹ããåéããã®ã«ååãªéãã§å€æããŸãããç§éã¯ã¡ããã©åã£ããããŒã¿ãããã®ããŒãµãã圌ã«ç§ãã¡ã®ãªããžããªãäžããæã ã¯ãã³ãŒããæã£ãŠãããã¹ãŠã®ãã®ãåŸãŸããã
åé¡ã¯æ®ã£ãŠããŸãïŒãããã¯ã·ã§ã³ã§ãã¬ã€ãããŠãããã®ãã©ã®ããã«çµã¿ç«ãŠãã®ã§ããïŒãã¹ãã¯ç§ãã¡ããŸã£ããå¿ èŠãšããªããã®ãã«ããŒã§ããã®ã§ãç§ãã¡ã¯çç£ã«èå³ãæã£ãŠããŸããäºåºŠãšèããã«ãXHProfãæ¡çšããŸãããã¯ãšãªã®äžéšã«ã€ããŠã¯ãã§ã«æ¬çªç°å¢ã§å®è¡ãããŠãããããããŒã¿ããŒã¹ã«ä¿åãããŠãããããã¡ã€ã«ãµã³ãã«ããããŸãããããã®ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããçæãããã¹ãããã·ã§ãããè§£æããŠããã¡ã€ã«ã®ãªã¹ããååŸããã ãã§ååã§ããã
XHProfã®ãã¡ãªãã
XHProfãèµ·åããªãã£ãããéåžžã«å¿ èŠã ã£ãå¥ã®ã¯ã©ã¹ã¿ãŒã§ãã®ããã»ã¹ãç¹°ãè¿ããŸãããããã¯ãããã¯ã°ã©ãŠã³ãã¹ã¯ãªãããšéåæåŠçãå®è¡ããããã®ã¯ã©ã¹ã¿ãŒã§ãããé«è² è·ã«ãšã£ãŠéèŠã§ãããå€ãã®ããžãã¯ãå®è¡ããŸãã
ãããŠãXHProfãç§ãã¡ã«ãšã£ãŠäžäŸ¿ã§ããããšã確èªããŸããã
- PHPã³ãŒãã倿Žããå¿ èŠããããŸãããã¬ãŒã¹éå§ã³ãŒããæ¿å ¥ãããã¬ãŒã¹ãçµäºããåéããããŒã¿ãååŸããŠããã¡ã€ã«ã«æžã蟌ãå¿ èŠããããŸããçµå±ã®ãšãããããã¯ãããã¡ã€ã©ãŒã§ããããããã¯ã·ã§ã³ããããŸããã€ãŸãããªã¯ãšã¹ããããããããã®ã§ããµã³ããªã³ã°ã«ã€ããŠãèæ ®ããå¿ èŠããããŸããç§ãã¡ã®å Žåãããã¯ãç°ãªããšã³ããªãã€ã³ããæã€å€æ°ã®ã¯ã©ã¹ã¿ãŒã«ãã£ãŠæªåããŸããã
- . . , OPCache. : XHProf, . , core- .
- . . XHProf . ( XHProf): CPU, , . , , . - XHProf aggregator ( XHProf Live Profiler, open-source) , , , . , : «, , », CPU , , Live Profiler . , , .
- XHProf. , . . , . : , ( , youROCKãããã¯lsdã§ã¯å¿ èŠãããŸããããåäžã®ã©ãããŒãç¶æããæ¹ã䟿å©ã§ããïŒãXHProfã«ããããé©çšããããšã¯ãããªã倧ããªãããã¡ã€ã©ãŒã§ãããããç§ãã¡ãããããã£ãããšã§ã¯ãããŸããïŒäžæ³šæã§äœããå£ããå Žåã¯ã©ããªããŸããïŒïŒã
å¥ã®ã¢ã€ãã¢ããããŸãããããšãã°ãæ¬çªç°å¢ã§å®è¡ããããã³ããŒå矩ãªã©ã®ç¹å®ã®åååãã³ã³ããŒã¶ãŒããé€å€ããã®ã¯ã圹ã«ç«ããªãããã§ãããã³ããŒããã±ãŒãžããªãã¡ã¯ã¿ãªã³ã°ããããäžèŠãªã³ãŒããåé€ãããããããšã¯ãããŸããã
ãœãªã¥ãŒã·ã§ã³èŠä»¶
ç§ãã¡ã¯åã³éãŸããã©ã®ãããªè§£æ±ºçãååšãããã調ã¹ãŸããããããŠã圌ãã¯èŠä»¶ã®æçµãªã¹ããäœæããŸããã
ãŸããæå°éã®ãªãŒããŒããããç§ãã¡ã«ãšã£ãŠãXHProfã¯ããŒã§ããïŒãããå¿ èŠãšãã以äžã®ãã®ã§ã¯ãããŸããã
次ã«ã PHPã³ãŒãã倿ŽããããããŸããã§ããã
第äžã«ã FPMãšCLIã®äž¡æ¹ã§ãœãªã¥ãŒã·ã§ã³ãã©ãã§ãæ©èœããããšãæãã§ããŸããã
第åã«ããã©ãŒã¯ãæ±ãããã£ãããããã¯ãCLIã®ã¯ã©ãŠããµãŒããŒã§ç©æ¥µçã«äœ¿çšãããŠããŸãã PHPå ã§ãããã®ç¹å®ã®ããžãã¯ãäœæããããããŸããã§ããã
5çªç®ïŒç®±ããåºããŠãµã³ããªã³ã°ããŸããå®éãããã¯PHPã³ãŒãã倿ŽããªããšããèŠä»¶ã«åºã¥ããŠããŸãã以äžã«ããµã³ããªã³ã°ãå¿ èŠãªçç±ã説æããŸãã
6çªç®ã§æåŸïŒã³ãŒããã匷å¶ããæ©èœããã¹ãŠãèªåçã«æ©èœããå Žåã¯æ°ã«å ¥ã£ãŠããŸãããæåã§éå§ã調æŽã確èªããæ¹ã䟿å©ãªå ŽåããããŸããèšå®ãéããŠå«ãŸãã確çãèšå®ããPHPã¢ãžã¥ãŒã«ã®ããäžè¬çãªã¡ã«ããºã ãã©ã³ãã ã«æ±ºå®ããã®ã§ã¯ãªããã³ãŒãããçŽæ¥ãã¹ãŠãæå¹ãŸãã¯ç¡å¹ã«ããæ©èœãå¿ èŠã§ããã
funcmapã®ããã¿
ãã®çµæãfuncmapãšåŒã°ãããœãªã¥ãŒã·ã§ã³ãåŸãããŸããã
Funcmapã¯æ¬è³ªçã«PHPæ¡åŒµã§ãã PHPã®çšèªã§ã¯ãããã¯PHPã¢ãžã¥ãŒã«ã§ãããããã©ã®ããã«æ©èœããããçè§£ããããã«ãPHPããã»ã¹ãšPHPã¢ãžã¥ãŒã«ãã©ã®ããã«æ©èœããããèŠãŠã¿ãŸãããã
ãããã£ãŠãããã»ã¹ãéå§ããŸãã PHPã䜿çšãããšãã¢ãžã¥ãŒã«ãæ§ç¯ãããšãã«ããã¯ããµãã¹ã¯ã©ã€ãã§ããŸããããã»ã¹ãéå§ãããGINITïŒGlobal InitïŒããã¯ãèµ·åãããŸããããã§ãã°ããŒãã«ãã©ã¡ãŒã¿ãŒãåæåã§ããŸããæ¬¡ã«ãã¢ãžã¥ãŒã«ãåæåãããŸãã宿°ã¯ããã§äœæããŠå²ãåœãŠãããšãã§ããŸãããç¹å®ã®ã¢ãžã¥ãŒã«ã«å¯ŸããŠã®ã¿ã§ãããèŠæ±ã«å¯ŸããŠã¯å²ãåœãŠãããŸãããããã§ãªãå Žåã¯ãè¶³ãèžã¿å ¥ããŠããŸããŸãã
次ã«ããŠãŒã¶ãŒãªã¯ãšã¹ããå±ããRINITïŒRequest InitïŒããã¯ãåŒã³åºãããŸããèŠæ±ãå®äºãããšããã®ã·ã£ããããŠã³ãçºçããæåŸã«ã¢ãžã¥ãŒã«ã®ã·ã£ããããŠã³ãçºçããŸãïŒMSHUTDOWNããã³GSHUTDOWNããã¹ãŠãè«ççã§ãã
FPMã«ã€ããŠè©±ããŠããå ŽåãåãŠãŒã¶ãŒèŠæ±ã¯æ¢åã®ã¯ãŒã«ãŒã«éä¿¡ãããŸããåºæ¬çã«ãRINITãšRSHUTDOWNã¯ãFPMãã¯ãŒã«ãŒãå€ããªã£ãŠãããšå€æãããŸã§ãåãæãããã«æ©èœããŸããä»åºŠã¯ãã¯ãŒã«ãŒãæã£ãŠæ°ããã¯ãŒã«ãŒãäœæããŸãã CLIã«ã€ããŠè©±ããŠããå Žåãããã¯åãªãç·åœ¢ããã»ã¹ã§ãããã¹ãŠãäžåºŠåŒã³åºãããŸãã

funcmapã®ããã¿
ãã®ã»ããã®ãã¡ã2ã€ã®ããã¯ã«èå³ããããŸããã 1ã€ç®ã¯RINITã§ããããŒã¿åéãã©ã°ã®èšå®ãéå§ããŸãããããã¯ãããŒã¿ããµã³ããªã³ã°ããããã«åŒã³åºãããäžçš®ã®ã©ã³ãã ã§ãããããæ©èœããå Žåã¯ããã®ãªã¯ãšã¹ããåŠçããŸããã颿°ã®åŒã³åºããšãã®ã¡ãœããã®çµ±èšãåéããŸããããããæ©èœããªãã£ãå Žåããªã¯ãšã¹ãã¯åŠçãããŸããã§ããã
次ã«ãããã·ã¥ããŒãã«ãååšããªãå Žåã¯äœæããŸããããã·ã¥ããŒãã«ã¯ãPHPèªäœã«ãã£ãŠå éšçã«æäŸãããŸããããã§äœããçºæããå¿ èŠã¯ãããŸãã-ãããæã£ãŠäœ¿ã£ãŠãã ããã
次ã«ãã¿ã€ããŒãåæåããŸãã以äžã§åœŒã«ã€ããŠè©±ããŸãããä»ã®ãšããã圌ã¯éèŠã§å¿ èŠã§ããããšãå¿ããªãã§ãã ããã
2çªç®ã®ããã¯ã¯MSHUTDOWNã§ã..ãRSHUTDOWNã§ã¯ãªãMSHUTDOWNã§ããããšã«æ³šæããŠãã ãããç§ãã¡ã¯ãªã¯ãšã¹ãããšã«äœããèããããããŸããã§ãã-ç§ãã¡ã¯åŽåè å šäœã«èå³ãæã£ãŠããŸãããMSHUTDOWNã§ãããã·ã¥ããŒãã«ãååŸããããã調ã¹ãŠãã¡ã€ã«ãæžã蟌ã¿ãŸãïŒå€ãè¯ããã¡ã€ã«ãããä¿¡é Œæ§ãé«ãã䟿å©ã§ãçšéãåºããã®ã¯äœã§ããããïŒïŒã
ããã·ã¥ããŒãã«ã¯ããŠãŒã¶ãŒå®çŸ©é¢æ°ãåŒã³åºããããã³ã«åŒã³åºãããåãPHPããã¯zend_execute_exã«ãã£ãŠéåžžã«ç°¡åã«å ¥åãããŸããã¬ã³ãŒãã«ã¯ããããã©ã®ãããªçš®é¡ã®é¢æ°ã§ãããããã®ååãšã¯ã©ã¹ãçè§£ããããã®è¿œå ã®ãã©ã¡ãŒã¿ãŒãå«ãŸããŠããŸãããããåãå ¥ããååãèªã¿åããããã·ã¥ããŒãã«ã«æžã蟌ãã§ãããããã©ã«ãã®ããã¯ãåŒã³åºããŸãã
ãã®ããã¯ã¯ã€ã³ã©ã€ã³é¢æ°ãæžã蟌ã¿ãŸãããçµã¿èŸŒã¿é¢æ°ããªãŒããŒã©ã€ãããå Žåã¯ãzend_execute_internalãšåŒã°ããå¥åã®æ©èœããããŸãã
æ§æ
PHPã³ãŒãã倿Žããã«ãããæ§æããã«ã¯ã©ãããã°ããã§ããïŒèšå®ã¯éåžžã«ç°¡åã§ãã
- æå¹ïŒæå¹ãã©ããã
- æžã蟌ãã§ãããã¡ã€ã«ãç°ãªãPHPããã»ã¹ãåããã¡ã€ã«ã«åæã«æžã蟌ãå Žåãç«¶åæ¡ä»¶ãé€å€ããããã®pidãã¬ãŒã¹ãã«ããŒããããŸãã
- 確çããŒã¹ïŒç¢ºçãã©ã°ã0ã«èšå®ãããšããªã¯ãšã¹ãã¯æžã蟌ãŸããŸããã100ã®å Žåããã¹ãŠã®èŠæ±ããã°ã«èšé²ãããçµ±èšã«å«ãŸããŸãã
- flush_intervalãããã¯ããã¹ãŠã®ããŒã¿ããã¡ã€ã«ã«ãã³ãããé »åºŠã§ããCLIã§ããŒã¿åéãå®è¡ãããã®ã§ãããé·æéå®è¡ã§ããã¹ã¯ãªãããããã倧éã®æ©èœã䜿çšãããšã¡ã¢ãªãæ¶è²»ããŸãã
ããã«ãè² è·ãããã»ã©é«ããªãã¯ã©ã¹ã¿ãŒãããå ŽåãFPMã¯ãã¯ãŒã«ãŒãããã«åŠçããæºåãã§ããŠããããšãçè§£ããããã»ã¹ã匷å¶çµäºããŸãããã€ãŸããã¯ã©ã¹ã¿ãŒã¯åç¶ããã¡ã¢ãªã®äžéšãæ¶è²»ããŸããäžå®æéåŸããã¹ãŠããã£ã¹ã¯ã«ãã©ãã·ã¥ããããã·ã¥ããŒãã«ããªã»ããããŠãæåããããçŽããŸãããã ããã¿ã€ã ã¢ãŠãã«ãŸã éããŠããªãå Žåã¯ãMSHUTDOWNããã¯ãããªã¬ãŒãããæçµçã«ãã¹ãŠãæžã蟌ãŸããŸãã
æåŸã«å¿ èŠã ã£ãã®ã¯ãPHPã³ãŒãããfuncmapãåŒã³åºãæ©èœã§ããã察å¿ããæ¡åŒµæ©èœã¯ã確çãã©ã®ããã«æ©èœãããã«é¢ä¿ãªããçµ±èšã®åéãæå¹ãŸãã¯ç¡å¹ã«ã§ããå¯äžã®æ¹æ³ãæäŸããŸãã
ãªãŒããŒããã
ããããã¹ãŠããµãŒããŒã«ã©ã®ããã«åœ±é¿ããã®ãçåã«æããŸãããæãè² è·ã®é«ãPHPã¯ã©ã¹ã¿ãŒã®1ã€ã®å®éã®æŠéæ©ã«éä¿¡ããããªã¯ãšã¹ãã®æ°ã瀺ãã°ã©ããäœæããŸããã
ãã®ãããªãã·ã³ã¯å€æ°ååšããå¯èœæ§ããããããã°ã©ãã«ã¯CPUã§ã¯ãªãèŠæ±ã®æ°ã衚瀺ãããŸãããã©ã³ãµãŒã¯ããã·ã³ãéåžžãããå€ãã®ãªãœãŒã¹ãæ¶è²»ãå§ããããšãèªèãããã·ã³ãåçã«ããŒããããããã«èŠæ±ãåçåããããšããŸããããã¯ããµãŒããŒãã©ã®ããã«å£åããŠããããçè§£ããã®ã«ååã§ããã
æ¡åŒµæ©èœã25ïŒ ã50ïŒ ã100ïŒ ã§é çªã«ãªã³ã«ãããšã次ã®å³ã衚瀺ãããŸãã
ç¹ç·ã¯ãäºæ³ããããªã¯ãšã¹ãã®æ°ã§ããã¡ã€ã³ã©ã€ã³ã¯ãå ¥ã£ãŠãããªã¯ãšã¹ãã®æ°ã§ããçŽ6ïŒ ã12ïŒ ã23ïŒ ã®äœäžãèŠãããŸããããã®ãµãŒããŒã¯ãåä¿¡ãªã¯ãšã¹ãã®åŠçãã»ãŒ4åã®1å°ãªããå§ããŸããã
ãã®ã°ã©ãã¯ããŸãããµã³ããªã³ã°ãéèŠã§ããããšã瀺ããŠããŸãããµãŒããŒãªãœãŒã¹ã®20ïŒ ãçµ±èšã®åéã«è²»ããããšã¯ã§ããŸããã
誀ã£ãçµæ
ãµã³ããªã³ã°ã«ã¯å¯äœçšããããŸããäžéšã®ã¡ãœããã¯çµ±èšã«å«ãŸããŠããŸããããå®éã«ã¯äœ¿çšãããŠããŸããç§ãã¡ã¯ããã€ãã®æ¹æ³ã§ãããšæŠãããšããŸããïŒ
- . -, . , , , , .
- . , : , , .
ãšã©ãŒåŠçã®ããã«2ã€ã®è§£æ±ºçã詊ããŸããã 1ã€ç®ã¯ããšã©ãŒãçºçããç¬éãã匷å¶çã«çµ±èšåéãæå¹ã«ããããšã§ãããšã©ãŒãã°ãåéããŠåæããŸãããã ããããã«ã¯èœãšã穎ããããŸãããªãœãŒã¹ãæžå°ãããšããšã©ãŒã®æ°ãå³åº§ã«å¢å ããŸãããããã®åŠçãéå§ãããšãããã«å€ãã®ã¯ãŒã«ãŒãååšããã¯ã©ã¹ã¿ãŒã¯ãã£ãããšæ¶æ» ãå§ããŸãããããã£ãŠãããããããšã¯å®å šã«æ£ããããã§ã¯ãããŸããã
å¥ã®æ¹æ³ã§ãããè¡ãæ¹æ³ã¯ïŒç§ãã¡ã¯èªãã§ããããŒã¿ã»ãããã®ããŒãµãŒã䜿çšããŠãã©ã®ã¡ãœãããããã§åŒã³åºãããŠãããã«æ³šç®ããŠãè³ãéã調ã¹ãŸããããããã£ãŠããµãŒããŒã®è² è·ãæé€ãã誀æ€ç¥ã®æ°ãæžãããŸããã
ããããããã§ããã£ãã«åŒã³åºããããããããå¿ èŠãã©ãããäžæãªã¡ãœããããããŸããããã®ãããªã¡ãœããã䜿çšããäºå®ã倿ããã®ã«åœ¹ç«ã€ãã«ããŒã远å ããŸããããµã³ããªã³ã°ã«ãããã¡ãœããããã£ãã«åŒã³åºãããªãããšããã§ã«ç€ºãããŠããå Žåã¯ãåŠçã100ïŒ ãªã³ã«ããŠãäœãèµ·ãã£ãŠããããèããªãã§ãã ããããã®ã¡ãœããã®å®è¡ã¯ãã¹ãŠãã°ã«èšé²ãããŸããããªãã¯ããã«ã€ããŠç¥ã£ãŠããã§ãããã
ãã®æ¹æ³ã䜿çšãããŠããããšã確å®ã«ããã£ãŠããå Žåã¯ãããéããããããŸãããããããããã¯å¿ èŠã§ããããŸããªæ©èœã§ãããŸãã«ãã䜿çšãããªããäžå¹³ããªãã·ã§ã³ããããšæ³åããŠã¿ãŠãã ãããããããããã¯éèŠã§ããåãåãããšãã§ããŸããããã®ãããªå Žåããã®ãããªã¡ãœããã«æåã§ã©ãã«ãä»ããæ¹æ³ãåŠã³ãŸããã
ã©ã®ã¡ãœããã䜿çšãããŠãããïŒçœãèæ¯ã«ããïŒãã©ã®ã¡ãœããã䜿çšãããŠããªãå¯èœæ§ããããïŒèµ€ãèæ¯ã«ããïŒã瀺ãã€ã³ã¿ãŒãã§ã€ã¹ãäœæããŸãããããã§ã¯ãå¿ èŠãªã¡ãœãããããŒã¯ããããšãã§ããŸãã
ã€ã³ã¿ãŒãã§ãŒã¹ç»é¢
ã€ã³ã¿ãŒãã§ãŒã¹ã¯çŽ æŽãããã§ãããæåã«æ»ããŸãããããããç§ãã¡ã解決ããŠããåé¡ã§ããããã¯ãç§ãã¡ã®ãšã³ãžãã¢ããããã³ãŒããèªãã ãšããäºå®ã«ãããŸããã圌ãã¯ã©ãã§ãããèªã¿ãŸããïŒ IDEã§ã圌ã®å·¥èžåã®ãã¡ã³ã«ãããçš®ã®Webã€ã³ã¿ãŒãã§ã€ã¹ã§IDEã®äžçãé¢ããŠãããã§äœããããããã«åŒ·å¶ããã®ã¯ã©ãããããšãæ³åããŠã¿ãŠãã ãããéäžã§ååã«äŒãå¿ èŠããããšå€æããŸãããæªäœ¿çšã®ã¡ãœããã®ããŒã¿ããŒã¹å šäœãããŒããããã®ã¡ãœããã䜿çšãããŠãããã©ããã衚瀺ããPhpStormã®ãã©ã°ã€ã³ã
äœæããŸãããããã«ãã¡ãœãããã€ã³ã¿ãŒãã§ãŒã¹ã§äœ¿çšãããŠãããã®ãšããŠããŒã¯ããããšãã§ããŸããããã¯ãã¹ãŠãµãŒããŒã«éãããæ®ãã®ã³ãŒãããŒã¹å¯çš¿è ãå©çšã§ããããã«ãªããŸãã
ããã§ãLegacyã§ã®äœæ¥ã®äž»èŠéšåã¯çµããã§ããå®è¡ããŠããªãããšã«æ©ãæ°ã¥ããããã«ãã°ããå¿çããæªäœ¿çšã®ã³ãŒããæåã§æ€çŽ¢ããæéãç¡é§ã«ããŸããã
funcmapæ¡åŒµæ©èœã¯GitHubã§å ¥æã§ããŸãã誰ãã®ã圹ã«ç«ãŠãã°å¹žãã§ãã
ä»£æ¿æ¡
å€ããèŠããšãããã¥ãŒã®ç§ãã¡ã¯èªåãã¡ã§äœããã¹ããããããªãããã«èŠãããããããŸãããåžå Žã«åºãŠãããã®ãèŠãŠã¿ãŸãããïŒ
ããã¯å ¬æ£ãªè³ªåã§ããç§ãã¡ã¯èŠãŸãã-ãããŠãã®æç¹ã§åžå Žã«ã¯äœããããŸããã§ãããç§ãã¡ããœãªã¥ãŒã·ã§ã³ãç©æ¥µçã«å®è£ ãå§ãããšããåæã«ãé§ã®ã€ã®ãªã¹ã«äœããžã§ãŒã»ã¯ããã³ã¹ãšããç·ãåæ§ã®ã¢ã€ãã¢ãå®è£ ããTombsæ¡åŒµæ©èœãäœæããããšãçºèŠããŸããã
ãã§ã«ç¬èªã®è§£æ±ºçããããããããŸãæ éã«èª¿æ»ããŸããã§ããããããã§ãããã€ãã®åé¡ãèŠã€ãããŸããã
- ãµã³ããªã³ã°ã®æ¬ åŠãäžã§ããªããããå¿ èŠãªã®ãã説æããŸããã
- . , APCu ( ), .
- CLI. , , CLI-, .
- . Tombs, , , , , , . funcmap («» , ): , . Tombs , , FPM CLI. - , .
ãŸããç¹ã«éçºãéåžžã«æŽ»çºãªå Žåã«ãçæéã«å®è£ ãããæ©èœãã©ã®ããã«åé€ããããäºåã«æ€èšããŠãã ãããç§ãã¡ã®å Žåããããã¯A / Bãã¹ãã§ãããäºåã«èããŠããªãå Žåã¯ãããããçä»ããå¿ èŠããããŸãã
第äºã«ïŒããªãã®é¡§å®¢ãäžç®ã§ç¥ããããããå éšã§ãããå€éšã§ãããã¯é¢ä¿ãããŸãã-ããªãã¯ããããç¥ã£ãŠããå¿ èŠããããŸããããæç¹ã§ãããªãã¯åœŒãã«èšãå¿ èŠããããŸããçªå·"ã
3çªç®ïŒ APIãã¯ãªãŒã³ã¢ããããŸããããã«ãããã·ã¹ãã å šäœãç°¡çŽ åãããŸãã
ãããŠç¬¬4ã«ããããã³ãŒãã®æ€çŽ¢ãå«ãããã¹ãŠãèªååã§ããŸãããããç§ãã¡ãããããšã§ãã