éäŒã®æšæ¶
ç§ã¯ãã®ã¬ããŒããã¢ã¹ã¯ã¯ã§éå¬ããã GopherCon Russia 2019 ã«ã³ãã¡ã¬ã³ã¹ã§ã¯è±èªã§ãããžã ããŽãŽããã§ã®äº€æµäŒã§ã¯ãã·ã¢èªã§çºè¡šããŸããã ããã§ã¯ãããããã ã€ã³ããã¯ã¹ã«ã€ããŠèª¬æããŸããB ããªãŒã»ã©äžè¬çã§ã¯ãããŸããããèå³æ·±ããã®ã§ã¯ãããŸããã å
±æ
ãããããã ã€ã³ããã¯ã¹ãã©ã®ããã«æ©èœããããä»ã®ã€ã³ããã¯ã¹ãããåªããŠããå Žåãšå£ã£ãŠããå ŽåããããŠã©ã®ãããªå Žåã«ä»ã®ã€ã³ããã¯ã¹ãããå€§å¹ ã«é«éã§ããããèŠãŠãããŸãã ã©ã®äººæ°ã® DBMS ããã§ã«ãããããã ã€ã³ããã¯ã¹ãåããŠããããèŠãŠã¿ãŸãããã Go ã§ç¬èªã®ã³ãŒããæžããŠã¿ãŸãããã ãããŠããã¶ãŒããšããŠããæ¢è£œã®ã©ã€ãã©ãªã䜿çšããŠãç¬èªã®è¶ é«éã®ç¹æ®ããŒã¿ããŒã¹ãäœæããŸãã
ç§ã®äœåãçããã«ãšã£ãŠæçã§èå³æ·±ããã®ã§ããããšãå¿ããé¡ã£ãŠããŸãã è¡ãïŒ
å°å ¥
ããã«ã¡ã¯ãã¿ããªïŒ ããå€æ¹XNUMXæã§ãããç§ãã¡ã¯ã¿ããªãšãŠãç²ããŠããŸãã éå±ãªããŒã¿ããŒã¹ ã€ã³ããã¯ã¹çè«ã«ã€ããŠè©±ã絶奜ã®æ©äŒã§ããã? å¿é ããªãã§ãã ããããšããã©ããã«æ°è¡ã®ãœãŒã¹ ã³ãŒãããããŸãã ð
åè«ã¯ããŠããããã®ã¬ããŒãã«ã¯æ
å ±ããã£ããè©°ãŸã£ãŠããã®ã§ãããŸãæéããããŸããã ããã§ã¯å§ããŸãããã
ä»æ¥ã¯æ¬¡ã®ããšã«ã€ããŠã話ããŸãã
- ã€ã³ããã¯ã¹ãšã¯äœã§ããã
- ããããããã€ã³ããã¯ã¹ãšã¯äœã§ããã
- ã©ãã§äœ¿çšãããã©ãã§äœ¿çšãããªããããŸããã®çç±ã
- Go ã§ã®ç°¡åãªå®è£ ãšã³ã³ãã€ã©ã§ã®å°ãã®èŠåŽã
- è¥å¹²åçŽãã¯å£ããŸãããGo ã¢ã»ã³ãã©ãŒã§ã®å®è£ ã¯ããçç£çã§ãã
- ããããããã€ã³ããã¯ã¹ã®ãåé¡ãã
- æ¢åã®å®è£ ã
ã§ã¯ãã€ã³ããã¯ã¹ãšã¯äœã§ãããã?
ã€ã³ããã¯ã¹ã¯ãã¡ã€ã³ ããŒã¿ãšã¯å¥ã«ç¶æããã³æŽæ°ãããå¥ã®ããŒã¿æ§é ã§ãã æ€çŽ¢ãé«éåããããã«äœ¿çšãããŸãã ã€ã³ããã¯ã¹ããªããã°ãæ€çŽ¢ã«ã¯ããŒã¿ãå®å
šã«èª¿ã¹ãå¿
èŠããã (ãã« ã¹ãã£ã³ãšåŒã°ããããã»ã¹)ããã®ããã»ã¹ã«ã¯ç·åœ¢ã®ã¢ã«ãŽãªãºã ã®è€éãã䌎ããŸãã ããããããŒã¿ããŒã¹ã«ã¯éåžžãèšå€§ãªéã®ããŒã¿ãå«ãŸããŠãããç·åœ¢ã®è€éãã§ã¯é
ãããŸãã çæ³çã«ã¯ã察æ°ãŸãã¯å®æ°ãååŸããŸãã
ããã¯éåžžã«è€éãªããŒãã§ããã埮åŠãªç¹ããã¬ãŒããªãããããããããŸãããæ°å幎ã«ãããããŒã¿ããŒã¹ã®éçºãšç 究ãæ¯ãè¿ã£ãŠã¿ããšãããŒã¿ããŒã¹ã®ã€ã³ããã¯ã¹ãäœæããããã«åºã䜿çšãããŠããã¢ãããŒãã¯ã»ãã®ãããã§ãããšèšããŸãã
æåã®ã¢ãããŒãã¯ãæ€çŽ¢ã¹ããŒã¹ãããå°ããªéšåã«åå²ããŠãæ€çŽ¢ã¹ããŒã¹ãéå±€çã«åæžããããšã§ãã
ç§ãã¡ã¯éåžžãããŸããŸãªçš®é¡ã®æšã䜿çšããŠãããè¡ããŸãã äŸãšããŠã¯ãã¯ããŒãŒããã®äžã«è³æãå ¥ã£ã倧ããªç®±ãããããã®äžã«ããŸããŸãªãããã¯ã«åããããè³æãå ¥ã£ãå°ããªç®±ãå«ãŸããŠãããšããŸãã ææãå¿ èŠãªå Žåããã¯ãããŒããšæžãããç®±ã§ã¯ãªãããææããšæžãããç®±ããæ¢ãã§ããã?
XNUMX çªç®ã®æ¹æ³ã¯ãç®çã®èŠçŽ ãŸãã¯èŠçŽ ã®ã°ã«ãŒããããã«éžæããããšã§ãã ããã¯ããã·ã¥ ããããŸãã¯éã€ã³ããã¯ã¹ã§è¡ããŸãã ããã·ã¥ ãããã®äœ¿çšã¯åã®äŸãšéåžžã«äŒŒãŠããŸãããç®±ã®ä»£ããã«ãæçµã¢ã€ãã ãå
¥ã£ãå°ããªç®±ãã¯ããŒãŒããã«ãããããããŸãã
XNUMX çªç®ã®ã¢ãããŒãã¯ãæ€çŽ¢ã®å¿
èŠæ§ãæé€ããããšã§ãã ããã¯ããã«ãŒã ãã£ã«ã¿ãŒãŸãã¯ã«ãã³ãŒ ãã£ã«ã¿ãŒã䜿çšããŠè¡ããŸãã æåã®ãã®ã¯å³åº§ã«çããæäŸããæ€çŽ¢ã®æéãçããŸãã
æåŸã®ã¢ãããŒãã¯ãææ°ã®ããŒããŠã§ã¢ãæäŸãããã¹ãŠã®èœåãæ倧éã«æŽ»çšããããšã§ãã ããã¯ãŸãã«ãããããã ã€ã³ããã¯ã¹ã§è¡ãããšã§ãã ã¯ãããããã䜿çšãããšãã¯ã€ã³ããã¯ã¹å
šäœã調ã¹ãå¿
èŠãããå ŽåããããŸããããããéåžžã«å¹ççã«å®è¡ããŸãã
å ã»ã©ãè¿°ã¹ãããã«ãããŒã¿ããŒã¹ ã€ã³ããã¯ã¹ã®ããŒãã¯åºå€§ã§ããã劥åç¹ããããããããŸãã ããã¯ãæ€çŽ¢ãããã«é«éåããå¿ èŠãããå Žåããèãããããã¹ãŠã®æ€çŽ¢ã¿ã€ããã«ããŒããå¿ èŠãããå Žåãªã©ãè€æ°ã®ã¢ãããŒããåæã«äœ¿çšã§ããããšãæå³ããŸãã
ä»æ¥ã¯ããããã®ã¢ãããŒãã®ãã¡æãç¥ãããŠããªãããããããã ã€ã³ããã¯ã¹ã«ã€ããŠèª¬æããŸãã
ãã®ããŒãã«ã€ããŠè©±ãç§ã¯èª°ã§ãã?
ç§ã¯ Badoo ã§ããŒã ãªãŒããŒãšããŠåããŠããŸã (ãããããåœç€Ÿã®å¥ã®è£œåã§ãã Bumble ã®æ¹ãããç¥ãããŠããã§ããã)ã ãã§ã«äžçäžã§ 400 å人ãè¶
ãããŠãŒã¶ãŒãããããŠãŒã¶ãŒã«æé©ãªãã®ãéžæããå€ãã®æ©èœãåããŠããŸãã ããã¯ããããããã ã€ã³ããã¯ã¹ãªã©ã®ã«ã¹ã¿ã ãµãŒãã¹ã䜿çšããŠè¡ãããŸãã
ã§ã¯ãããããããã€ã³ããã¯ã¹ãšã¯äœã§ãããã?
ãããããã ã€ã³ããã¯ã¹ã¯ããã®ååã瀺ãããã«ããããããããŸãã¯ãããã»ããã䜿çšããŠæ€çŽ¢ã€ã³ããã¯ã¹ãå®è£
ããŸãã é³¥ç°å³ããèŠããšããã®ã€ã³ããã¯ã¹ã¯ããšã³ãã£ã㣠(人ãªã©) ãšãã®ããããã£ãŸãã¯ãã©ã¡ãŒã¿ (幎霢ãç®ã®è²ãªã©) ãè¡šã XNUMX ã€ãŸãã¯è€æ°ã®ãããããããããã³ãããæŒç® (ANDãORãNOT) ã䜿çšããã¢ã«ãŽãªãºã ã§æ§æãããŸãã ) æ€çŽ¢ã¯ãšãªã«çããŸãã
ãããããã ã€ã³ããã¯ã¹ã¯ãå€ãã®ã«ãŒãã£ããªãã£ã®äœãå (ãåžå
äžå¿éšããã®è·é¢ããªã©ãšæ¯ã¹ãŠãç®ã®è²ãããå©å§»ç¶æ³ããèããŠãã ãã) ã«ãããã¯ãšãªãçµã¿åãããæ€çŽ¢ãããå Žåã«æé©ã§ãéåžžã«ããã©ãŒãã³ã¹ãé«ããšèšãããŠããŸãã ãã ããã«ãŒãã£ããªãã£ã®é«ãåã§ãåé¡ãªãæ©èœããããšãåŸã§ç€ºããŸãã
ãããããã ã€ã³ããã¯ã¹ã®æãåçŽãªäŸãèŠãŠã¿ãŸãããã
次ã®ãããªãã€ã㪠ããããã£ãæã€ã¢ã¹ã¯ã¯ã®ã¬ã¹ãã©ã³ã®ãªã¹ãããããšæ³åããŠãã ããã
- å°äžéã®è¿ãã
- å°çšé§è»å ŽããããŸãã
- ãã©ã³ãããïŒãã©ã¹ããïŒã
- ããŒãã«ãäºçŽã§ããŸãïŒäºçŽãåãä»ããŸãïŒã
- ããžã¿ãªã¢ã³ã«é©ããŠããŸãïŒããŒã¬ã³ãã¬ã³ããªãŒïŒã
- é«äŸ¡ïŒé«äŸ¡ïŒã
åã¬ã¹ãã©ã³ã« 0 ããå§ãŸãã·ãŒã±ã³ã¹çªå·ãäžãã6 ã€ã®ãããããã (ç¹æ§ããšã« 4 ã€) ã«ã¡ã¢ãªãå²ãåœãŠãŸãããã 次ã«ãã¬ã¹ãã©ã³ã«ãã®ããããã£ããããã©ããã«å¿ããŠããããã®ãããããããèšå®ããŸãã ã¬ã¹ãã©ã³ 4 ã«ãã©ã³ããããå Žåãããã©ã³ããããããããããã®ããã 1 ã 0 ã«èšå®ãããŸã (ãã©ã³ãããªãå Žå㯠XNUMX)ã
ããã§ãå¯èœãªéãæãåçŽãªãããããã ã€ã³ããã¯ã¹ãå®æããããã䜿çšããŠæ¬¡ã®ãããªã¯ãšãªã«çããããšãã§ããŸãã
- ãããžã¿ãªã¢ã³ãã¬ã³ããªãŒãªã¬ã¹ãã©ã³ãæããŠãã ããã;
- ããã©ã³ãããããããŒãã«ãäºçŽã§ããå®ãã¬ã¹ãã©ã³ãæããŠãã ãããã
ã©ããã£ãŠïŒ èŠãŠã¿ãŸãããã æåã®ãªã¯ãšã¹ãã¯éåžžã«ç°¡åã§ãã ç§ãã¡ãããå¿
èŠãããã®ã¯ããããžã¿ãªã¢ã³ ãã¬ã³ããªãŒããããããããååŸãããããããããå
¬éãããŠããã¬ã¹ãã©ã³ã®ãªã¹ãã«å€æããããšã ãã§ãã
XNUMX çªç®ã®ãªã¯ãšã¹ãã¯å°ãè€éã§ãã ãé«äŸ¡ãªãããããããã® NOT ããããããã䜿çšããŠå®äŸ¡ãªã¬ã¹ãã©ã³ã®ãªã¹ããååŸãããããããããŒãã«ãäºçŽã§ããŸããããããããããš AND æŒç®ãããã®çµæãšããã©ã³ãããããŸãããããããããš AND æŒç®ããå¿
èŠããããŸãã çµæãšããŠåŸãããããããããã«ã¯ããã¹ãŠã®åºæºãæºããæœèšã®ãªã¹ããå«ãŸããŸãã ãã®äŸã§ã¯ããã㯠Yunost ã¬ã¹ãã©ã³ã®ã¿ã§ãã
å€ãã®çè«ãé¢ä¿ããŠããŸãããå¿é
ããªãã§ãã ãããããã«ã³ãŒãã衚瀺ãããŸãã
ããããããã€ã³ããã¯ã¹ã¯ã©ãã§äœ¿çšãããŸãã?
Google ã§ãããããã ã€ã³ããã¯ã¹ãæ€çŽ¢ãããšãåçã® 90% ãäœããã®åœ¢ã§ Oracle DB ã«é¢é£ãããã®ã«ãªããŸãã ããããä»ã® DBMS ããããããã®ãããªåªããæ©èœããµããŒãããŠããã®ã§ã¯ãªãã§ãããã? ããŸãã
äž»ãªå®¹çè
ã®ãªã¹ããèŠãŠã¿ãŸãããã
MySQL ã¯ãŸã ãããããã ã€ã³ããã¯ã¹ããµããŒãããŠããŸãããããã®ãªãã·ã§ã³ã®è¿œå ãææ¡ããææ¡ããããŸã (
PostgreSQL ã¯ãããããã ã€ã³ããã¯ã¹ããµããŒãããŸããããåçŽãªãããããããšãããæäœã䜿çšããŠãä»ã®è€æ°ã®ã€ã³ããã¯ã¹ã«ãããæ€çŽ¢çµæãçµåããŸãã
Tarantool ã«ã¯ãããã»ãã ã€ã³ããã¯ã¹ãããããããã«å¯Ÿããç°¡åãªæ€çŽ¢ããµããŒãããŠããŸãã
Redis ã«ã¯åçŽãªããããã£ãŒã«ãããããŸã
MongoDB ã¯ãŸã ãããããã ã€ã³ããã¯ã¹ããµããŒãããŠããŸãããããã®ãªãã·ã§ã³ãè¿œå ããããšãææ¡ããææ¡ããããŸãã
Elasticsearch ã¯å
éšã§ããããããã䜿çšããŸã
- ããããç§ãã¡ã®å®¶ã«æ°ããé£äººãçŸããŸããïŒãããµã ããã¯ãGo ã§æžãããæ°ããéãªã¬ãŒã·ã§ãã« ããŒã¿ããŒã¹ã§ãã ããã«ã¯ãããããã ã€ã³ããã¯ã¹ã®ã¿ãå«ãŸããŠããããã¹ãŠã¯ãããããã ã€ã³ããã¯ã¹ã«åºã¥ããŠããŸãã ããã«ã€ããŠã¯å°ãåŸã§è©±ããŸãã
Goã§ã®å®è£
ãããããããããã ã€ã³ããã¯ã¹ãããŸã䜿çšãããªãã®ã¯ãªãã§ãããã? ãã®è³ªåã«çããåã«ãGo ã§éåžžã«åçŽãªãããããã ã€ã³ããã¯ã¹ãå®è£
ããæ¹æ³ã説æããããšæããŸãã
ããããããã¯æ¬è³ªçã«åãªãããŒã¿ã®äžéšã§ãã Go ã§ã¯ãããã«ãã€ã ã¹ã©ã€ã¹ã䜿çšããŸãããã
XNUMX ã€ã®ã¬ã¹ãã©ã³ã®ç¹æ§ã«å¯Ÿã㊠XNUMX ã€ã®ããããããããããããããããå
ã®åãããã¯ãç¹å®ã®ã¬ã¹ãã©ã³ã«ãã®ç¹æ§ããããã©ããã瀺ããŸãã
20 ã€ã®ãã«ããŒé¢æ°ãå¿
èŠã«ãªããŸãã XNUMX ã€ã¯ãããããããã©ã³ãã ããŒã¿ã§åããããã«äœ¿çšãããŸãã ã©ã³ãã ã§ãããäžå®ã®ç¢ºçã§ã¬ã¹ãã©ã³ãããããã®ç¹æ§ãæã£ãŠããŸãã äŸãã°ãã¢ã¹ã¯ã¯ã§ã¯äºçŽã®åããªãã¬ã¹ãã©ã³ã¯ã»ãšãã©ãªããšæããŸãããããžã¿ãªã¢ã³åãã®åºã¯XNUMXå²çšåºŠã§ã¯ãªãããšæããŸãã
XNUMX çªç®ã®é¢æ°ã¯ããããããããã¬ã¹ãã©ã³ã®ãªã¹ãã«å€æããŸãã
ãããã£ãªããããäºçŽã§ããå®äŸ¡ãªã¬ã¹ãã©ã³ãæããŠãã ããããšããã¯ãšãªã«çããã«ã¯ãNOT ãš AND ãšãã XNUMX ã€ã®ãããæŒç®ãå¿
èŠã§ãã
ããè€é㪠AND NOT æŒç®åã䜿çšãããšãã³ãŒããå°ãç°¡çŽ åã§ããŸãã
ãããã®æäœããšã«é¢æ°ããããŸãã ã©ã¡ããã¹ã©ã€ã¹ã調ã¹ãŠããããããã察å¿ããèŠçŽ ãåãåºãããããããããæŒç®ãšçµã¿åãããŠãçµæãçµæã®ã¹ã©ã€ã¹ã«å
¥ããŸãã
ããã§ããããããããšé¢æ°ã䜿çšããŠæ€çŽ¢ã¯ãšãªã«çããããšãã§ããããã«ãªããŸããã
é¢æ°ã¯éåžžã«åçŽã§ãããé¢æ°ãåŒã³åºããããã³ã«æ°ããçµæã®ã¹ã©ã€ã¹ãè¿ããªãã£ããããããã©ãŒãã³ã¹ã¯ããã»ã©é«ããããŸããã§ããã
pprof ã§å°ããããã¡ã€ãªã³ã°ãè¡ã£ãåŸãGo ã³ã³ãã€ã©ã«ã¯ãé¢æ°ã®ã€ã³ã©ã€ã³åãšããéåžžã«åçŽã ãéåžžã«éèŠãªæé©åãæ¬ ããŠããããšã«æ°ä»ããŸããã
å®éã®ãšãããGo ã³ã³ãã€ã©ãŒã¯ã¹ã©ã€ã¹ãééããã«ãŒããéåžžã«æããŠããããã®ãããªã«ãŒããå«ãé¢æ°ã®ã€ã³ã©ã€ã³åãæåºãšããŠæåŠããŸãã
ããããç§ã¯æããããšã¯ãããŸãããå€ãè¯ãæ代ã®ããã«ãã«ãŒãã®ä»£ããã« goto ã䜿çšããŠã³ã³ãã€ã©ãŒãã ãŸãããšãã§ããŸãã
ãããŠãã芧ã®ãšãããã³ã³ãã€ã©ã¯é¢æ°ãåãã§ã€ã³ã©ã€ã³åããŸãã ãã®çµæãçŽ 2 ãã€ã¯ãç§ãç¯çŽããããšãã§ããŸããã æªããªãïŒ
XNUMX çªç®ã®ããã«ããã¯ã¯ãã¢ã»ã³ããªåºåãããèŠããšç°¡åã«ããããŸãã ã³ã³ãã€ã©ã¯ãæãããããªã«ãŒãå
ã«ã¹ã©ã€ã¹å¢çãã§ãã¯ãè¿œå ããŸããã å®éã®ãšãããGo ã¯å®å
šãªèšèªã§ãããã³ã³ãã€ã©ãŒã¯ãç§ã® XNUMX ã€ã®åŒæ° (XNUMX ã€ã®ã¹ã©ã€ã¹) ã®ãµã€ãºãç°ãªãããšãæããŠããŸãã çµå±ã®ãšãããçè«çã«ã¯ããããããããã¡ ãªãŒããŒãããŒãçºçããå¯èœæ§ããããŸãã
ãã¹ãŠã®ã¹ã©ã€ã¹ãåããµã€ãºã§ããããšã瀺ããŠã³ã³ãã€ã©ãŒãå®å¿ãããŸãããã ãããè¡ãã«ã¯ãé¢æ°ã®å
é ã«ç°¡åãªãã§ãã¯ãè¿œå ããŸãã
ãããèŠãŠãã³ã³ãã€ã©ãŒã¯åãã§ãã§ãã¯ãã¹ãããããæçµçã«ããã« 500 ããç§ãç¯çŽããããšã«ãªããŸãã
倧ããªæ
ããŠãåçŽãªå®è£ ããããçšåºŠã®ããã©ãŒãã³ã¹ãåŒãåºãããšãã§ããŸãããããã®çµæã¯å®éã«ã¯çŸåšã®ããŒããŠã§ã¢ã§å¯èœãªãã®ãããã¯ããã«æªãã§ãã
ç§ãã¡ãè¡ãã®ã¯åºæ¬çãªãããæŒç®ã ãã§ãããããã»ããµãŒã¯ããããéåžžã«å¹ççã«å®è¡ããŸãã ããããæ®å¿µãªãããç§ãã¡ã¯ããã»ããµã«éåžžã«å°ããªäœæ¥ããäŸçµŠãããŸãã ç§ãã¡ã®é¢æ°ã¯ãã€ãããšã«æäœãå®è¡ããŸãã UInt8 ã¹ã©ã€ã¹ã䜿çšããŠã64 ãã€ãã®ãã£ã³ã¯ãåŠçã§ããããã«ã³ãŒããéåžžã«ç°¡åã«èª¿æŽã§ããŸãã
ã芧ã®ãšããããã®å°ããªå€æŽã«ãããããã ãµã€ãºã XNUMX åã«ãªããããã°ã©ã ã XNUMX åé«éåãããŸããã ã²ã€ã³ã¯ç·åœ¢ã§ãããšèšããŸãã
ã¢ã»ã³ãã©ã§ã®å®è£
ããããããã§çµããã§ã¯ãããŸããã åœç€Ÿã®ããã»ããµã¯ã16ã32ãããã«ã¯ 64 ãã€ãã®ãã£ã³ã¯ãåŠçã§ããŸãã ãã®ãããªãåºç¯ãªãæŒç®ã¯ãåäžåœä»€è€æ°ããŒã¿ (SIMDãXNUMX ã€ã®åœä»€ãå€æ°ã®ããŒã¿) ãšåŒã°ãããã®ãããªæŒç®ã䜿çšããããã«ã³ãŒããå€æããããã»ã¹ã¯ãã¯ãã«åãšåŒã°ããŸãã
æ®å¿µãªãããGo ã³ã³ãã€ã©ãŒã¯ãã¯ãã«åã«é¢ããŠã¯æ±ºããŠåªããŠããŸãã çŸåšãGo ã³ãŒãããã¯ãã«åããå¯äžã®æ¹æ³ã¯ãGo ã¢ã»ã³ãã©ãŒã䜿çšããŠãããã®æäœãæåã§ååŸããŠé 眮ããããšã§ãã
Go ã¢ã»ã³ãã©ãŒã¯å¥åŠãªéç£ã§ãã ãããããã¢ã»ã³ããªèšèªã¯ãäœæ察象ã®ã³ã³ãã¥ãŒã¿ãŒã®ã¢ãŒããã¯ãã£ã«å€§ããé¢ä¿ããŠããããšããåç¥ã§ãããããGo ã§ã¯ããã§ã¯ãããŸããã Go ã¢ã»ã³ãã©ãŒã¯ãIRL (äžéè¡šçŸèšèª) ãŸãã¯äžéèšèªã«äŒŒãŠãããå®è³ªçã«ãã©ãããã©ãŒã ã«äŸåããŸããã ããã»ãã€ã¯ã¯çŽ æŽãããããã©ãŒãã³ã¹ãèŠãã
ããã«ãGo ã¯ãäžè¬ã«åãå
¥ããããŠãã AT&T ããã³ Intel 圢åŒãšã¯ç°ãªããçãã Plan 9 圢åŒã䜿çšããŸãã
Go ã¢ã»ã³ãã©ãæäœæ¥ã§æžãããšã¯ãæã楜ããããšã§ã¯ãªããšèšã£ãŠãéèšã§ã¯ãããŸããã
ããã幞ããªããšã«ãGo ã¢ã»ã³ãã©ã®äœæã«åœ¹ç«ã€ XNUMX ã€ã®é«ã¬ãã« ããŒã«ãPeachPy ãš avo ããã§ã«ååšããŸãã ã©ã¡ãã®ãŠãŒãã£ãªãã£ãããããã Python ãš Go ã§æžãããé«ã¬ãã«ã®ã³ãŒããã Go ã¢ã»ã³ãã©ãŒãçæããŸãã
ãããã®ãŠãŒãã£ãªãã£ã¯ãã¬ãžã¹ã¿ã®å²ãåœãŠãã«ãŒãã®äœæãªã©ãç°¡çŽ åããäžè¬çã« Go ã§ã¢ã»ã³ã㪠ããã°ã©ãã³ã°ã®äžçã«å
¥ãããã»ã¹ãç°¡çŽ åããŸãã
avo ã䜿çšããã®ã§ãããã°ã©ã ã¯ã»ãŒéåžžã® Go ããã°ã©ã ã«ãªããŸãã
avo ããã°ã©ã ã®æãåçŽãªäŸã¯æ¬¡ã®ããã«ãªããŸãã main() é¢æ°ãããããã®äžã« Add() é¢æ°ãå®çŸ©ãããŠããŸãããã®é¢æ°ã®æå³ã¯ XNUMX ã€ã®æ°å€ãå ç®ããããšã§ãã ããã«ã¯ãååã§ãã©ã¡ãŒã¿ãååŸãã空ãã®é©åãªããã»ããµ ã¬ãžã¹ã¿ã® XNUMX ã€ãååŸããããã®ãã«ããŒé¢æ°ããããŸãã ADDQ ã«èŠãããããã«ãåããã»ããµãŒæäœã«ã¯ avo äžã®å¯Ÿå¿ããæ©èœããããŸãã æåŸã«ãçµæã®å€ãä¿åããããã®ãã«ããŒé¢æ°ã瀺ããŸãã
gogenerate ãåŒã³åºããšãavo ã§ããã°ã©ã ãå®è¡ããããã®çµæãXNUMX ã€ã®ãã¡ã€ã«ãçæãããŸãã
- add.s ã Go ã¢ã»ã³ãã©ãŒã®çµæã®ã³ãŒãã«è¿œå ããŸãã
- stub.go ã«ã¯ãGo ãšã¢ã»ã³ãã©ãŒã® XNUMX ã€ã®äžçãæ¥ç¶ããé¢æ°ããããŒãå«ãŸããŠããŸãã
avo ãäœãã©ã®ããã«è¡ãããèŠãŠããã®ã§ãé¢æ°ãèŠãŠã¿ãŸãããã é¢æ°ã®ã¹ã«ã©ãŒ ããŒãžã§ã³ãšãã¯ãã« (SIMD) ããŒãžã§ã³ã®äž¡æ¹ãå®è£
ããŸããã
ãŸãã¹ã«ã©ãŒããŒãžã§ã³ãèŠãŠã¿ãŸãããã
åã®äŸãšåæ§ã«ãç¡æã§æå¹ãªæ±çšã¬ãžã¹ã¿ãèŠæ±ããŠãããããåŒæ°ã®ãªãã»ãããšãµã€ãºãèšç®ããå¿
èŠã¯ãããŸããã avo ã¯ããããã¹ãŠãç§ãã¡ã®ããã«ãã£ãŠãããŸãã
以åã¯ã©ãã«ãš goto (ãŸãã¯ãžã£ã³ã) ã䜿çšããŠããã©ãŒãã³ã¹ãåäžãããGo ã³ã³ãã€ã©ãŒãéšããŠããŸããããçŸåšã¯æåãã䜿çšããŠããŸãã éèŠãªã®ã¯ããµã€ã¯ã«ã¯ããé«ãã¬ãã«ã®æŠå¿µã§ãããšããããšã§ãã ã¢ã»ã³ãã©ã§ã¯ã©ãã«ãšãžã£ã³ããããããŸããã
æ®ãã®ã³ãŒãã¯ãã§ã«éŠŽæã¿ããããç解ã§ããã¯ãã§ãã ã©ãã«ãšãžã£ã³ãã䜿çšããŠã«ãŒãããšãã¥ã¬ãŒãããXNUMX ã€ã®ã¹ã©ã€ã¹ããå°ããªããŒã¿ãåãåºãããããããããæŒç® (ãã®å Žå㯠AND NOT) ãšçµã¿åãããŠãçµæãçµæã®ã¹ã©ã€ã¹ã«å
¥ããŸãã å
šãŠã
æçµçãªã¢ã»ã³ãã©ãŒ ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã ãªãã»ãããšãµã€ãºãèšç®ããã (ç·è²ã§åŒ·èª¿è¡šç€º)ã䜿çšãããã¬ãžã¹ã¿ãŒã远跡ããã (èµ€è²ã§åŒ·èª¿è¡šç€º) ããå¿
èŠã¯ãããŸããã§ããã
ã¢ã»ã³ããªèšèªå®è£
ã®ããã©ãŒãã³ã¹ã Go ã®æè¯ã®å®è£
ã®ããã©ãŒãã³ã¹ãšæ¯èŒãããšãåãã§ããããšãããããŸãã ãããŠããã¯äºæ³éãã§ãã çµå±ã®ãšãããç§ãã¡ã¯ç¹å¥ãªããšã¯äœãããŠããŸãããGo ã³ã³ãã€ã©ãŒãè¡ãããšãåçŸããã ãã§ãã
æ®å¿µãªãããã¢ã»ã³ããªèšèªã§èšè¿°ãããé¢æ°ãã³ã³ãã€ã©ã«åŒ·å¶çã«ã€ã³ã©ã€ã³åããããšã¯ã§ããŸããã Go ã³ã³ãã€ã©ã«ã¯çŸåšãã®ãããªæ©èœããããŸããããããªãåããè¿œå ã®èŠæããããŸããã
ããããã¢ã»ã³ããªèšèªã®å°ããªé¢æ°ããå©ç¹ãåŸãããšãã§ããªãçç±ã§ãã 倧èŠæš¡ãªé¢æ°ãäœæããããæ°ãã math/bits ããã±ãŒãžã䜿çšããããã¢ã»ã³ãã©ãŒèšèªããã€ãã¹ããå¿ èŠããããŸãã
次ã«ãé¢æ°ã®ãã¯ãã« ããŒãžã§ã³ãèŠãŠã¿ãŸãããã
ãã®äŸã§ã¯ãAVX2 ã䜿çšããããšã«ããããã32 ãã€ãã®ãã£ã³ã¯ã§åäœããæäœã䜿çšããŸãã ã³ãŒãã®æ§é ã¯ããã©ã¡ãŒã¿ã®ããŒãã空ãå
±æã¬ãžã¹ã¿ã®èŠæ±ãªã©ãã¹ã«ã©ãŒ ããŒãžã§ã³ãšéåžžã«äŒŒãŠããŸãã
é©æ°ã® 32 ã€ã¯ãããåºç¯ãªãã¯ãã«æŒç®ã§ç¹æ®ãªã¯ã€ã ã¬ãžã¹ã¿ã䜿çšããããšã§ãã 512 ãã€ãã®ãã£ã³ã¯ã®å Žåãããã㯠Y ãšããæ¥é èŸãä»ããããã¬ãžã¹ã¿ã§ããããããã³ãŒãå
ã« YMM() é¢æ°ã衚瀺ãããçç±ã§ãã 64 ããã ãã£ã³ã¯ã§ AVX-XNUMX ã䜿çšããŠããå Žåããã¬ãã£ãã¯ã¹ã¯ Z ã«ãªããŸãã
XNUMX çªç®ã®é©æ°ã¯ãã«ãŒã ã¢ã³ããŒãªã³ã°ãšåŒã°ããæé©åã䜿çšããããšã«ããããšã§ããããã¯ãã«ãŒãã®å
é ã«ãžã£ã³ãããåã« XNUMX ã€ã®ã«ãŒãæäœãæåã§å®è¡ããããšãæå³ããŸãã ãã®æé©åã«ããã³ãŒãå
ã®åå²ã®æ°ãæžããŸãããå©çšå¯èœãªç©ºãã¬ãžã¹ã¿ã®æ°ã«ãã£ãŠå¶éãããŸãã
ããŠãããã©ãŒãã³ã¹ã«ã€ããŠã¯ã©ãã§ããããïŒ åœŒå¥³ã¯ãããã ïŒ æè¯ã® Go ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŠçŽ XNUMX åã®é«éåãéæããŸããã å°è±¡çã§ãããïŒ
ãã ãããã®å®è£
ã§ããAVX-512ãããªãã§ããããŸãã¯ã¯ãšãª ã¹ã±ãžã¥ãŒã©ã® JIT (ãžã£ã¹ãã€ã³ã¿ã€ã ã³ã³ãã€ã©) ã䜿çšããããšã§é«éåã§ããå¯èœæ§ããããŸãã ããããããã¯ç¢ºãã«å¥ã®ã¬ããŒãã®ãããã¯ã§ãã
ããããããã€ã³ããã¯ã¹ã®åé¡
Go ã§ã®ãããããã ã€ã³ããã¯ã¹ã®ç°¡åãªå®è£
ãšãã¢ã»ã³ããªèšèªã§ã®ããçç£çãªå®è£
ããã§ã«èŠãŠããŸãããæåŸã«ããªããããããã ã€ã³ããã¯ã¹ããã£ãã«äœ¿çšãããªãã®ãã«ã€ããŠè©±ããŸãããã
å€ãè«æã§ã¯ãããããã ã€ã³ããã¯ã¹ã«é¢ãã XNUMX ã€ã®åé¡ã«ã€ããŠèšåããŠããŸãããæ°ããè«æãšç§ã¯ãããã¯ãã¯ãé¢é£æ§ããªããšäž»åŒµããŠããŸãã ãããã®åé¡ã®ããããã«ã¯æ·±ãç«ã¡å
¥ããŸããããè¡šé¢çã«èŠãŠãããŸãã
é«ã«ãŒãã£ããªãã£ã®åé¡
ãããã£ãŠããããããã ã€ã³ããã¯ã¹ã¯ã«ãŒãã£ããªãã£ã®äœããã£ãŒã«ããã€ãŸãå€ãã»ãšãã©ãªããã£ãŒã«ã (æ§å¥ãç®ã®è²ãªã©) ã«ã®ã¿é©ããŠãããšèšãããŠããŸãããã®çç±ã¯ããã®ãããªãã£ãŒã«ãã®éåžžã®è¡šçŸ (XNUMX ã€ã®å€) ã§ããããã§ããå€ãããã®ãããæ°)ãã«ãŒãã£ããªãã£ãé«ãå Žåãå€ãã®ã¹ããŒã¹ãå æããããã«ããããã®ãããããã ã€ã³ããã¯ã¹ãååã« (ã»ãšãã©) åããããªããªããŸãã
å Žåã«ãã£ãŠã¯ãæ°å€ãè¡šãããã«äœ¿çšããæšæºçãªè¡šçŸãªã©ãå¥ã®è¡šçŸã䜿çšããããšããããŸãã ãããããã¹ãŠãå€ããã®ã¯å§çž®ã¢ã«ãŽãªãºã ã®åºçŸã§ããã éå»æ°å幎ã«ããããç§åŠè
ãç 究è
ã¯ããããããçšã®å€æ°ã®å§çž®ã¢ã«ãŽãªãºã ãèæ¡ããŠããŸããã ãã®äž»ãªå©ç¹ã¯ããããæäœãå®è¡ããããã«ããããããã解åããå¿
èŠããªãããšã§ããå§çž®ãããããããããã«å¯ŸããŠçŽæ¥ãããæäœãå®è¡ã§ããŸãã
æè¿ã§ã¯ãèœé³ãããããããªã©ã®ãã€ããªãã ã¢ãããŒããç»å Žãå§ããŠããŸãã ãããã¯ãããããããã® XNUMX ã€ã®ç°ãªãè¡šçŸ (ããããããèªäœãé
åããããããããã©ã³) ãåæã«äœ¿çšãããããã®éã§ãã©ã³ã¹ããšãããšã§ãããã©ãŒãã³ã¹ãæ倧åããã¡ã¢ãªæ¶è²»ãæå°éã«æããŸãã
æã人æ°ã®ããã¢ããªã±ãŒã·ã§ã³ã«ã¯ãèœé³ãããããããå«ãŸããŠããŸãã ããŸããŸãªããã°ã©ãã³ã°èšèªã®å®è£
ããã§ã«èšå€§ãªæ°ã«ãããGo ã®å®è£
ã XNUMX ã€ä»¥äžãããŸãã
é«ãã«ãŒãã£ããªãã£ã«å¯ŸåŠããã®ã«åœ¹ç«ã€ãã 185,2 ã€ã®ã¢ãããŒãã¯ãããã³ã°ãšåŒã°ããŸãã 人ã®èº«é·ãè¡šããã£ãŒã«ãããããšæ³åããŠãã ããã 身é·ã¯æµ®åå°æ°ç¹æ°ã§ãããç§ãã¡äººéã¯ãã®ããã«ã¯èããŸããã ç§ãã¡ã«ãšã£ãŠãèº«é· 185,3 cm ãš XNUMX cm ã«éãã¯ãããŸããã
é¡äŒŒããå€ã 1 cm 以å ã®ã°ã«ãŒãã«ã°ã«ãŒãåã§ããããšãããããŸãã
ãŸãã身é·ã 50 cm æªæºã§èº«é·ã 250 cm ãè¶ ãã人ã¯ã»ãšãã©ããªããšããããšãããã£ãŠããå Žåãåºæ¬çã«ãç¡éã®ã«ãŒãã£ããªãã£ãæã€ãã£ãŒã«ãããçŽ 200 åã®å€ã®ã«ãŒãã£ããªãã£ãæã€ãã£ãŒã«ãã«å€æã§ããŸãã
ãã¡ãããå¿ èŠã«å¿ããŠãåŸã§è¿œå ã®ãã£ã«ã¿ãªã³ã°ãè¡ãããšãã§ããŸãã
é«åž¯åå¹ ã®åé¡
ãããããã ã€ã³ããã¯ã¹ã«é¢ãã次ã®åé¡ã¯ãã€ã³ããã¯ã¹ã®æŽæ°ã«éåžžã«ã³ã¹ãããããããšã§ãã
ããŒã¿ããŒã¹ã¯ãæœåšçã«äœçŸãã®ä»ã®ã¯ãšãªãããŒã¿ãæ€çŽ¢ããŠããéã«ããŒã¿ãæŽæ°ã§ããªããã°ãªããŸããã åæããŒã¿ ã¢ã¯ã»ã¹ããã®ä»ã®å
±æã®åé¡ãåé¿ããã«ã¯ãããã¯ãå¿
èŠã§ãã ãããŠã倧ããªããã¯ã XNUMX ã€ããå Žåããã®ããã¯ãããã«ããã¯ã«ãªããšãããã¯ã®ç«¶åãšããåé¡ãçºçããŸãã
ãã®åé¡ã¯ãã·ã£ãŒãã£ã³ã°ãŸãã¯ããŒãžã§ã³ç®¡çãããã€ã³ããã¯ã¹ã䜿çšããããšã§è§£æ±ºãŸãã¯åé¿ã§ããŸãã
ã·ã£ãŒãã£ã³ã°ã¯ã·ã³ãã«ã§ããç¥ããããã®ã§ãã ä»ã®ããŒã¿ãšåæ§ã«ããããããã ã€ã³ããã¯ã¹ãã·ã£ãŒãã£ã³ã°ã§ããŸãã XNUMX ã€ã®å€§ããªããã¯ã®ä»£ããã«ãå€æ°ã®å°ããªããã¯ãååŸã§ãããããããã¯ã®ç«¶åããªããªããŸãã
ãã®åé¡ã解決ãã 100 çªç®ã®æ¹æ³ã¯ãããŒãžã§ã³ç®¡çãããã€ã³ããã¯ã¹ã䜿çšããããšã§ãã æ€çŽ¢ãŸãã¯èªã¿åãã«äœ¿çšããã€ã³ããã¯ã¹ã®ã³ããŒã 500 ã€ãšãæžã蟌ã¿ãŸãã¯æŽæ°ã«äœ¿çšããã€ã³ããã¯ã¹ã®ã³ããŒã XNUMX ã€äœæã§ããŸãã ãããŠãäžå®æéã« XNUMX å (ããšãã°ãXNUMX ããªç§ãŸã㯠XNUMX ããªç§ã« XNUMX å)ãããããè€è£œããŠäº€æããŸãã ãã¡ããããã®ã¢ãããŒãã¯ãã¢ããªã±ãŒã·ã§ã³ããããã«é ããŠããæ€çŽ¢ã€ã³ããã¯ã¹ãåŠçã§ããå Žåã«ã®ã¿é©çšã§ããŸãã
ããã XNUMX ã€ã®ã¢ãããŒãã¯åæã«äœ¿çšã§ããŸããã·ã£ãŒããããããŒãžã§ã³å¯Ÿå¿ã®ã€ã³ããã¯ã¹ã䜿çšã§ããŸãã
ããè€éãªã¯ãšãª
ãããããã ã€ã³ããã¯ã¹ã«é¢ããæåŸã®åé¡ã¯ããããããã ã€ã³ããã¯ã¹ãã¹ãã³ ã¯ãšãªãªã©ã®ããè€éãªçš®é¡ã®ã¯ãšãªã«ã¯ããŸãé©ããŠããªããšèšãããŠããããšã§ãã
確ãã«ãããèããŠã¿ããšãAND ã OR ãªã©ã®ãããæŒç®ã¯ãã200 æ³ãããã®å®¿æ³æéã 300 ïœ XNUMX ãã«ã®ããã«ãæããŠãã ããããšãã£ãã¯ãšãªã«ã¯ããŸãé©ããŠããŸããã
çŽ æŽã§éåžžã«è³¢æã§ã¯ãªã解決çã¯ãåãã«å€ã®çµæãååŸãããããããããåäœã® OR æŒç®ã§çµåããããšã§ãã
ããå°ãè¯ã解決çã¯ãã°ã«ãŒãåã䜿çšããããšã§ãã ããšãã°ã50 ãã«ã®ã°ã«ãŒãã§ãã ããã«ãããããã»ã¹ã 50 åé«éåãããŸãã
ãã ãããã®åé¡ã¯ããã®ã¿ã€ãã®ãªã¯ãšã¹ãå°çšã«äœæããããã¥ãŒã䜿çšããããšã§ç°¡åã«è§£æ±ºããããšãã§ããŸãã ç§åŠè«æã§ã¯ãããã¯ç¯å²ãšã³ã³ãŒãããããããããããšåŒã°ããŸãã
ãã®è¡šçŸã§ã¯ãããå€ (ããšãã° 200) ã« 200 ããããèšå®ããã ãã§ã¯ãªãããã®å€ãšãã¹ãŠã®å€ãããããé«ãå€ã«èšå®ããŸãã 300以äžã 300:XNUMX以äžãåæ§ã çã
ã
ãã®è¡šçŸã䜿çšãããšãã€ã³ããã¯ã¹ã 300 åèµ°æ»ããã ãã§ããã®çš®ã®æ€çŽ¢ã¯ãšãªã«çããããšãã§ããŸãã ãŸããéšå±ã®æéã 199 ãã«ä»¥äžã®ããã«ã®ãªã¹ããååŸãã次ã«éšå±ã®æéã XNUMX ãã«ä»¥äžã®ããã«ããªã¹ãããåé€ããŸãã æºåãã§ããŠã
é©ããããããããŸãããããããããã ã€ã³ããã¯ã¹ã䜿çšãããšãžãªã¯ãšãªãããå¯èœã§ãã ã³ãã¯ã座æšã幟äœåŠçå³åœ¢ã§å²ã幟äœåŠçè¡šçŸã䜿çšããããšã§ãã ããšãã°ãGoogle ã® S2ã å³ã¯ãçªå·ãä»ããããšãã§ãã XNUMX æ¬ä»¥äžã®äº€å·®ããç·ã®åœ¢åŒã§è¡šçŸã§ããå¿
èŠããããŸãã ãã®ããã«ããŠããžãªã¯ãšãªããã®ã£ããã«æ²¿ã£ãŠã(ãããã®çªå·ã®ä»ããè¡ã«æ²¿ã£ãŠ) è€æ°ã®ã¯ãšãªã«å€æã§ããŸãã
ã¬ãã£ãŒãœãªã¥ãŒã·ã§ã³
å°ãã§ãèå³ãæã£ãŠããã ããã°å¹žãã§ãããŸã䟿å©ãªããŒã«ãããªãã®æŠåšåº«ã«å ãããŸããã ãã®ãããªããšãè¡ãå¿ èŠãããå Žåãã©ã¡ããèŠãã°ããããããããŸãã
ãã ãã誰ãããããããã ã€ã³ããã¯ã¹ãæåããäœæããããã®æéãå¿èåããŸãã¯ãªãœãŒã¹ãæã£ãŠããããã§ã¯ãããŸããã ç¹ã«ãSIMD ã䜿çšãããªã©ãããé«åºŠãªãã®ã§ãã
幞ããªããšã«ã圹ç«ã€æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãããã€ããããŸãã
èœé³ãããããã
ãŸãããã§ã«è©±ããã®ãšåãèœé³ãããããã ã©ã€ãã©ãªããããŸãã ããã«ã¯ãæ¬æ Œçãªãããããã ã€ã³ããã¯ã¹ãäœæããããã«å¿
èŠãªã³ã³ãããšãããæäœããã¹ãŠå«ãŸããŠããŸãã
æ®å¿µãªãããçŸæç¹ã§ã¯ã©ã® Go å®è£
ã SIMD ã䜿çšããŠããŸãããã€ãŸããGo å®è£
ã¯ãããšãã° C å®è£
ãããããã©ãŒãã³ã¹ãäœãããšã«ãªããŸãã
ãããŒãµ
圹ç«ã€ãã XNUMX ã€ã®è£œå㯠Pilosa DBMS ã§ããããã«ã¯å®éã«ã¯ãããããã ã€ã³ããã¯ã¹ãããããŸããã ããã¯æ¯èŒçæ°ãããœãªã¥ãŒã·ã§ã³ã§ãããæ¥éã«äººã
ã®å¿ãæŽãã§ããŸãã
Pilosa ã¯å
éšã§èœé³ããããããã䜿çšãããããã䜿çšããæ©èœãæäŸããã°ã«ãŒãåãç¯å²ãšã³ã³ãŒããããããããããããã£ãŒã«ãã®æŠå¿µãªã©ãäžã§èª¬æãããã¹ãŠã®ããšãç°¡çŽ åããŠèª¬æããŸãã
ãã§ã«ããç¥ã£ãŠãã質åã«çããããã« Pilosa ã䜿çšããäŸãç°¡åã«èŠãŠã¿ãŸãããã
ãã®äŸã¯ãåã«èŠããã®ãšéåžžã«ãã䌌ãŠããŸãã Pilosa ãµãŒããŒãžã®ã¯ã©ã€ã¢ã³ããäœæããã€ã³ããã¯ã¹ãšå¿
èŠãªãã£ãŒã«ããäœæããŠããããã£ãŒã«ãã«ç¢ºçãå«ãã©ã³ãã ããŒã¿ãå
¥åããŠãæåŸã«äœ¿ãæ
£ããã¯ãšãªãå®è¡ããŸãã
ãã®åŸããexpensiveããã£ãŒã«ã㧠NOT ã䜿çšãããã®çµæããterraceããã£ãŒã«ãããã³ãreservationsããã£ãŒã«ããšäº€å·® (ãŸã㯠AND) ããŸãã ãããŠæåŸã«ãæçµçµæãåŸãããŸãã
è¿ãå°æ¥ããã®æ°ããã¿ã€ãã®ã€ã³ããã¯ã¹ãã€ãŸããããããã ã€ã³ããã¯ã¹ã MySQL ã PostgreSQL ã®ãã㪠DBMS ã«ãç»å Žããããšãç§ã¯å¿ããé¡ã£ãŠããŸãã
ãŸãšã
ãŸã å¯ãŠããªãæ¹ã¯ããããããé¡ãããŸãã æéãéãããŠãããããå€ãã®ãããã¯ã«ã€ããŠç°¡åã«è§Šããªããã°ãªããŸããã§ãããããã®è¬æŒãæçã§ãããããããã¢ãããŒã·ã§ã³ãããé«ããããããšãé¡ã£ãŠããŸãã
ãããããã ã€ã³ããã¯ã¹ã¯ãä»ããå¿ èŠãªãå Žåã§ãç¥ã£ãŠãããšããã§ãããã ããªãã®ããŒã«ããã¯ã¹ã®ããäžã€ã®ããŒã«ãšããŠæŽ»çšããŸãããã
Go ã®ããŸããŸãªããã©ãŒãã³ã¹ ããªãã¯ããGo ã³ã³ãã€ã©ãŒããŸã ããŸãåŠçã§ããªãããšã«ã€ããŠæ€èšããŠããŸããã ããããããã¯ãã¹ãŠã® Go ããã°ã©ããŒãç¥ã£ãŠãããšçµ¶å¯Ÿã«åœ¹ç«ã¡ãŸãã
ç§ãèšãããã£ãã®ã¯ããã ãã§ãã ããããšãïŒ
åºæïŒ habr.com