ã¯ãªãã¯ãªã㯠â Cratus (ããã»ã¹æ¹åã®ããã® IoT ã»ã³ãµãŒ) ã® CTO ã§ãããããã€ãã®ã¹ã¿ãŒãã¢ãã (Rocket Realtime SchoolãNeurensicãH2O.ai ãªã©) ã®åµèšè
ããã³å
±ååµèšè
ã§ãããããã€ãã®æåãåããŠããŸãã ã¯ãªã㯠15 æ³ã§æåã®ã³ã³ãã€ã© (TRS Z-80 çšã® Pascal) ãæžããŸããã 圌㯠Java ã® C2 (Sea ofââ Nodes IR) ã«é¢ããç 究ã§æãããç¥ãããŠããŸãã ãã®ã³ã³ãã€ã©ã¯ãJIT ãé«å質ã®ã³ãŒããçæã§ããããšãäžçã«ç€ºããŸãããããããJava ãçŸä»£ã®äž»èŠãªãœãããŠã§ã¢ ãã©ãããã©ãŒã ã® 864 ã€ãšããŠå°é ããèŠå ã® 500 ã€ãšãªããŸããã ãã®åŸãCliff ã¯ãAzul Systems ã 10 ã®ã¬ãã€ãã®ããŒãäžã§ XNUMX ããªç§ä»¥å
ã® GC äžæåæ¢ããµããŒããã Pure Java ãœãããŠã§ã¢ãåãã XNUMX ã³ã¢ã®ã¡ã€ã³ãã¬ãŒã ãæ§ç¯ããã®ãæ¯æŽããŸããã äžè¬çã«ãCliff 㯠JVM ã®ããããåŽé¢ã«åãçµãããšãã§ããŸããã
ãã®ããã©ãã¹ãã¯ã¯ãªããžã®çŽ æŽãããã€ã³ã¿ãã¥ãŒã§ãã 次ã®ãããã¯ã«ã€ããŠè©±ããŸãã
- äœã¬ãã«ã®æé©åãžã®ç§»è¡
- 倧èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ãè¡ãæ¹æ³
- ã³ã¹ãã¢ãã«
- äœã¬ãã«æé©åãã¬ãŒãã³ã°
- ããã©ãŒãã³ã¹åäžã®å®è·µäŸ
- ç¬èªã®ããã°ã©ãã³ã°èšèªãäœæããçç±
- ããã©ãŒãã³ã¹ãšã³ãžãã¢ã®ãã£ãªã¢
- æè¡çãªèª²é¡
- ã¬ãžã¹ã¿å²ãåœãŠãšãã«ãã³ã¢ã«ã€ããŠå°ã
- 人çæ倧ã®ææŠ
ã€ã³ã¿ãã¥ãŒã¯ä»¥äžã«ãã£ãŠå®æœãããŸãã
- ã¢ã³ãã¬ã€ã»ãµã¿ãªã³ ã¢ããŸã³ ãŠã§ã ãµãŒãã¹ããã 圌ã®ãã£ãªã¢ã®äžã§ã圌ã¯ãŸã£ããç°ãªããããžã§ã¯ãã«æºããããšãã§ããŸãããYandex 㧠NewSQL åæ£ããŒã¿ããŒã¹ããã¹ãããKaspersky Lab ã§ã¯ã©ãŠãæ€åºã·ã¹ãã ããã¹ãããMail.ru ã§ãã«ããã¬ã€ã€ãŒ ã²ãŒã ããã¹ããããã€ãéè¡ã§å€åœçºæ¿äŸ¡æ Œãèšç®ãããµãŒãã¹ããã¹ãããŸããã 倧èŠæš¡ãªããã¯ãšã³ãããã³åæ£ã·ã¹ãã ã®ãã¹ãã«èå³ããããŸãã
- ãŠã©ãžããŒã«ã»ã·ããã³ã ãããã¯ã©ãã«ãŒããã NetCracker OS ã®ããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã«é¢ãã XNUMX 幎éã®åãçµã¿ãNetCracker OS ã¯ããããã¯ãŒã¯ããã³ãããã¯ãŒã¯æ©åšã®ç®¡çããã»ã¹ãèªååããããã«éä¿¡äºæ¥è
ã«ãã£ãŠäœ¿çšããããœãããŠã§ã¢ã§ãã Java ããã³ Oracle Database ã®ããã©ãŒãã³ã¹ã®åé¡ã«èå³ããããŸãã å
¬åŒ PostgreSQL JDBC ãã©ã€ããŒã® XNUMX ãè¶
ããããã©ãŒãã³ã¹æ¹åã®èè
ã
äœã¬ãã«ã®æé©åãžã®ç§»è¡
ã¢ã³ãã«ãŒ: ããªã㯠JIT ã³ã³ãã€ã«ãJavaããããŠããã©ãŒãã³ã¹äœåå šè¬ã®äžçã§ã¯æå人ã§ããã?
åŽïŒ ãã®ãããªãã®ã§ãïŒ
ã¢ã³ãã«ãŒïŒããã©ãŒãã³ã¹ã®ä»äºã«é¢ããäžè¬çãªè³ªåããå§ããŸãããã CPU ã¬ãã«ã§ã®äœæ¥ãªã©ãé«ã¬ãã«ã®æé©åãšäœã¬ãã«ã®æé©åã®éžæã«ã€ããŠã¯ã©ãæããŸãã?
åŽ: ã¯ããããã§ã¯ãã¹ãŠãã·ã³ãã«ã§ãã æãéãã³ãŒãã¯ãäžåºŠãå®è¡ãããªãã³ãŒãã§ãã ãããã£ãŠãåžžã«é«ãã¬ãã«ããå§ããŠã¢ã«ãŽãªãºã ã«åãçµãå¿ èŠããããŸãã ååã«å€§ããªå®æ°ãä»å ¥ããªãéããããè¯ã O è¡šèšã¯æªã O è¡šèšãããåªããŠããŸãã äœã¬ãã«ã®ãã®ã¯æåŸã«æ®ããŸãã éåžžãã¹ã¿ãã¯ã®æ®ãã®éšåãååã«æé©åããèå³æ·±ããã®ããŸã æ®ã£ãŠããå Žåãããã¯äœã¬ãã«ã§ãã ããããé«ãã¬ãã«ããå§ããã«ã¯ã©ãããã°ããã§ãããã? é«åºŠãªäœæ¥ãååã«è¡ãããããšãã©ã®ããã«ããŠç¢ºèªã§ããŸãã? ãŸã...ãŸããã æ¢è£œã®ã¬ã·ãã¯ãããŸããã åé¡ãç解ãã(ä»åŸäžå¿ èŠãªæé ãèžãŸãªãããã«) äœããããã決å®ããå¿ èŠããããŸãããã®åŸãæçãªæ å ±ãæäŸãããããã¡ã€ã©ãŒãçºèŠããããšãã§ããŸãã ããæç¹ã§ãããªãèªèº«ãäžå¿ èŠãªãã®ãåãé€ããããšã«æ°ã¥ããäœã¬ãã«ã®åŸ®èª¿æŽãè¡ãææãæ¥ãŸããã ããã¯ééããªãç¹å¥ãªçš®é¡ã®èžè¡ã§ãã äžå¿ èŠãªããšãããŠããã«ãããããããçç£æ§ãæ°ã«ããæããªãã»ã©æ©ãåããŠãã人ãããããããŸãã ããããããã¯çåãççŽã«çãããŸã§ã®è©±ã§ãã éåžžã誰ãæ°ã«ããªãéèŠãªããšãã¯ãªãã£ã«ã« ãã¹ã«çŸããç¬éãŸã§ã¯ã99% ã®æéã誰ãç§ãäœããããæ°ã«ããŸããã ãããŠãããã§èª°ããããªãæåããå®ç§ã«æ©èœããªãã£ãã®ããã«ã€ããŠããªãã«å°èšãèšãå§ããŸãã äžè¬ã«ãããã©ãŒãã³ã¹ã«ã¯åžžã«æ¹åã®äœå°ããããŸãã ãããã99% ã®ç¢ºçã§èŠèŸŒã¿å®¢ã¯èŠã€ãããŸããã ããªãã¯ãã äœããæ©èœãããããšããŠããã ãã§ããã®éçšã§äœãéèŠããç解ããŸãã ãã®äœåãå®ç§ã§ããå¿ èŠãããããšãäºåã«ç¥ãããšã¯æ±ºããŠã§ããªãã®ã§ãå®éã«ã¯ããã¹ãŠã«ãããŠå®ç§ã§ãªããã°ãªããŸããã ããããããã¯äžå¯èœã§ãããããªãã¯ãããããŸããã åžžã«ä¿®æ£ãã¹ãããšããããããããŸãããããã¯ãŸã£ããæ®éã®ããšã§ãã
倧èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ãè¡ãæ¹æ³
ã¢ã³ãã«ãŒïŒããã©ãŒãã³ã¹ã¯ã©ã®ããã«åãçµãã§ããŸããïŒ ããã¯æšªæçãªåé¡ã§ãã ããšãã°ãå€ãã®æ¢åã®æ©èœã亀差ããããšã§çããåé¡ã«å¯ŸåŠããªããã°ãªããªãã£ãããšããããŸãã?
åŽïŒç§ã¯ãããé¿ããããšããŸãã ããã©ãŒãã³ã¹ãåé¡ã«ãªãããšãããã£ãŠããå Žåã¯ãã³ãŒãã£ã³ã°ãéå§ããåã«ãç¹ã«ããŒã¿æ§é ã«ã€ããŠèããŸãã ããããå€ãã®å Žåãããããã¹ãŠã¯ãã£ãšåŸã«ãªã£ãŠããããããŸãã ãããŠã極端ãªæ段ãè¬ããŠãç§ããæžãçŽããšåŸæããšåŒã¶ããšãè¡ãå¿
èŠããããŸããã€ãŸããååãªå€§ããã®éšåãååŸããå¿
èŠããããŸãã äžéšã®ã³ãŒãã¯ãããã©ãŒãã³ã¹ã®åé¡ãªã©ã«ããæžãçŽãå¿
èŠããããŸãã ã³ãŒããæžãçŽãçç±ãäœã§ãããã»ãšãã©ã®å Žåãå°ããªéšåããã倧ããªéšåãæžãçŽãæ¹ãè¯ãã§ãã ãã®ç¬éã誰ããææã«éãå§ããŸããããªããŠããšã ããããªã«ããããã®ã³ãŒãã«ã¯è§Šããããªããã ïŒã ãããå®éã«ã¯ãã»ãšãã©ã®å Žåããã®ã¢ãããŒãã®æ¹ãã¯ããã«ããŸãæ©èœããŸãã ããªãã¯ããã«å€§ããªåé¡ã«åãçµã¿ããã®åšãã«å€§ããªåãæããŠããåã®äžã®ãã¹ãŠãæžãçŽããŸãããšèšãå¿
èŠããããŸãã å¢çç·ã¯ã眮ãæããå¿
èŠãããå
éšã®ã³ã³ãã³ããããã¯ããã«å°ããã§ãã ãããŠããã®ãããªå¢çç·ã®æåã«ãã£ãŠå
éšã®äœæ¥ãå®ç§ã«è¡ãããšãã§ããã®ã§ããã°ãäž¡æã¯èªç±ã«ãªãã奜ããªããšãããããšãã§ããŸãã åé¡ãç解ããã°ãæžãæãããã»ã¹ã¯ã¯ããã«ç°¡åã«ãªãã®ã§ããã£ããåãçµãã§ãã ããã
åæã«ã倧èŠæš¡ãªæžãæããè¡ã£ããšãã«ããã©ãŒãã³ã¹ãåé¡ã«ãªãããšãå€æãããšãããã«ããã«ã€ããŠå¿é
ãå§ããå¯èœæ§ããããŸãã ããã¯éåžžããããŒã¿ãã³ããŒããªããããŒã¿ãã§ããã ãã·ã³ãã«ã«ç®¡çããµã€ãºãå°ããããããšãã£ãåçŽãªå
容ã«ãªããŸãã 倧èŠæš¡ãªæžãæãã§ã¯ãããã©ãŒãã³ã¹ãåäžãããæšââæºçãªæ¹æ³ããããŸãã ãããŠããããã¯ã»ãšãã©ã®å ŽåãããŒã¿ãäžå¿ã«å±éããŸãã
ã³ã¹ãã¢ãã«
ã¢ã³ãã«ãŒ: ããããã£ã¹ãã® XNUMX ã€ã§ãçç£æ§ã®èŠ³ç¹ããã³ã¹ã ã¢ãã«ã«ã€ããŠè©±ããŸããã ãããäœãæå³ããã®ã説æããŠããããŸããïŒ
åŽïŒ 確ãã«ã ç§ã¯ããã»ããµãŒã®ããã©ãŒãã³ã¹ãéåžžã«éèŠã ã£ãæ代ã«çãŸããŸããã ãããŠãã®æ代ãåã³æ»ã£ãŠããŸã - éåœã«ã¯ç®èããªãããã§ã¯ãããŸããã ç§ã¯ 256 ããã ãã·ã³ã®æ代ã«çãå§ããŸããããæåã®ã³ã³ãã¥ãŒã¿ãŒã¯ XNUMX ãã€ãã§åäœããŸããã ãŸãã«ãã€ãã ãã¹ãŠããšãŠãå°ããã£ãã åœä»€ã¯æ°ããããå¿
èŠããããããã°ã©ãã³ã°èšèªã¹ã¿ãã¯ãäžäœã«ç§»åãå§ãããšãèšèªã¯ãŸããŸãå€æ§åããŠãããŸããã ã¢ã»ã³ãã©ãŒãããŒã·ãã¯ãC ããããC ã¯ã¬ãžã¹ã¿ã®å²ãåœãŠãåœä»€ã®éžæãªã©ãå€ãã®è©³çŽ°ãåŠçããŸããã ããããããã§ã¯ãã¹ãŠãéåžžã«æ確ã§ãããå€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãžã®ãã€ã³ã¿ãŒãäœæãããšãããŒããçºçãããã®åœä»€ã®ã³ã¹ããããããŸãã ããŒããŠã§ã¢ã¯äžå®æ°ã®ãã·ã³ ãµã€ã¯ã«ãçæãããããå®è¡ãããã¹ãŠã®åœä»€ãåèšããã ãã§ããŸããŸãªå®è¡é床ãèšç®ã§ããŸãã ããããã®æ¯èŒ/ãã¹ã/åå²/åŒã³åºã/ããŒã/ã¹ãã¢ãåèšãããšããããå®è¡æéã«ãªããšèšããŸãã ããã©ãŒãã³ã¹ã®åäžã«åãçµããšãã¯ãã©ã®æ°å€ãå°ããªããã ãµã€ã¯ã«ã«å¯Ÿå¿ãããã«å¿
ã泚æãæãããšã«ãªããŸãã
ããããJava ã Python ãªã©ã«åãæ¿ãããšããã«ãäœã¬ãã«ã®ããŒããŠã§ã¢ããé¢ããããšã«ãªããŸãã Java ã§ã²ãã¿ãŒãåŒã³åºãã³ã¹ãã¯ãããã§ãã? HotSpotã®JITãæ£ããå Žå
çŸåšãç§ãã¡ã¯ããã»ããµã®é床ã XNUMX 幎éã»ãšãã©åäžããŠããªãç¶æ³ã«é¥ã£ãŠããŸãã æãæ»ã£ãŠããŸããïŒ ã·ã³ã°ã«ã¹ã¬ããã®åªããããã©ãŒãã³ã¹ã¯ãã¯ãæåŸ
ã§ããŸããã ããããçªç¶äžŠåã³ã³ãã¥ãŒãã£ã³ã°ãå§ãããšãããã¯ä¿¡ããããªãã»ã©é£ãããªãã誰ããããªãããžã§ãŒã ãºã»ãã³ãã®ããã«èŠãŸãã ããã§ã® XNUMX åã®å éã¯éåžžã誰ããäœããå°ç¡ãã«ããå Žæã§çºçããŸãã åæå®è¡ã«ã¯å€ãã®äœæ¥ãå¿
èŠã§ãã XNUMX åã®é«éåãå®çŸããã«ã¯ãã³ã¹ã ã¢ãã«ãç解ããå¿
èŠããããŸãã äœããã©ããããã®è²»çšãããããŸãã? ãããè¡ãã«ã¯ãèãåºç€ãšãªãããŒããŠã§ã¢ã«ã©ã®ããã«ãã£ããããããç解ããå¿
èŠããããŸãã
ããŒãã£ã³ã»ãã³ããœã³ã¯èªåã®ããã°ã«çŽ æŽãããèšèãéžã³ãŸãã
ã¢ã³ãã«ãŒ: ãããŠãã©ãããã°ããã»ã©ã®éãé ã®äžã«çããããšãã§ããã®ã§ãããã? ããã¯çµéšãç©ãã°éæã§ããã®ã§ããããïŒ ãã®ãããªçµéšã¯ã©ãããæ¥ãã®ã§ããããïŒ
åŽïŒããã§ãããç§ã¯èªåã®çµéšãæãç°¡åãªæ¹æ³ã§åŸãããã§ã¯ãããŸããã ç§ã¯ãåœä»€ããã¹ãŠç解ã§ããæ代ã«ã¢ã»ã³ããªã§ããã°ã©ãã³ã°ããŸããã ã°ãã°ãããããã§ããããã以æ¥ãZ80 ã®åœä»€ã»ããã¯åžžã«ç§ã®é ã®äžã«ãèšæ¶ã®äžã«æ®ã£ãŠããŸãã 話ãå§ããŠ40å以å
ã«äººã®ååãæãåºãããšã¯ã§ããŸããããXNUMX幎åã«æžãããã³ãŒãã¯èŠããŠããŸãã é¢çœãã§ãããçå矀ã¿ããã§ããã
äœã¬ãã«æé©åãã¬ãŒãã³ã°
ã¢ã³ãã«ãŒïŒãã£ãšç°¡åã«å ¥ãæ¹æ³ã¯ãããŸããïŒ
åŽïŒ ã¯ããšãããã ç§ãã¡å
šå¡ã䜿çšããããŒããŠã§ã¢ã¯ãæéãçµã£ãŠãããŸãå€ãã£ãŠããŸããã Arm ã¹ããŒããã©ã³ãé€ããŠã誰ãã x86 ã䜿çšããŠããŸãã ããçš®ã®æ¬æ Œçãªåã蟌ã¿ãè¡ã£ãŠããªãå Žåã¯ãåãããšãè¡ã£ãŠããããšã«ãªããŸãã ããŠã次ã æ瀺ãäœäžçŽã«ãããã£ãŠå€ãã£ãŠããŸããã Assembly ã«äœããæžã蟌ãå¿
èŠããããŸãã ããã»ã©å€ãã¯ãããŸããããç解ããã«ã¯ååã§ãã ããªãã¯ç¬ã£ãŠããŸãããç§ã¯å®å
šã«çå£ã«è©±ããŠããŸãã èšèªãšããŒããŠã§ã¢ã®å¯Ÿå¿ãç解ããå¿
èŠããããŸãã ãã®åŸãå°ãæžããŠãå°ããªããã¡ãã®èšèªçšã®å°ããªããã¡ãã®ã³ã³ãã€ã©ãäœæããå¿
èŠããããŸãã ããã¡ãã£ãœããšããããšã¯ããããªãã®æéããããŠäœãå¿
èŠããããšããããšã§ãã éåžžã«åçŽã§ãããåœä»€ãçæããå¿
èŠããããŸãã åœä»€ãçæãããšããè¡çºã¯ã誰ããäœæããé«ã¬ãã«ã®ã³ãŒããšããŒããŠã§ã¢äžã§å®è¡ããããã·ã³ ã³ãŒããšã®éã®æ©æž¡ãã®ã³ã¹ã ã¢ãã«ãç解ããã®ã«åœ¹ç«ã¡ãŸãã ãã®å¯Ÿå¿é¢ä¿ã¯ãã³ã³ãã€ã©ãäœæãããæç¹ã§è³ã«çŒãä»ããããŸãã æãåçŽãªã³ã³ãã€ã©ã§ãã ãã®åŸãJava ãšãã®æå³è«çãªæºãã¯ããã«æ·±ããããã«æ©ãæ¶ããã®ãã¯ããã«é£ãããšããäºå®ã«ç®ãåãå§ããããšãã§ããŸãã Java ã§ã¯ãæ©ãè¯ãã£ãã®ãæªãã£ãã®ããäœãåå ã§åŽ©å£ããäœã厩å£ããªãã®ããç解ããã®ã¯ã¯ããã«å°é£ã§ãã ãã ããã³ãŒããèŠãŠãããã ããã®ã²ãã¿ãŒã¯æ¯åã€ã³ã©ã€ã³åããå¿
èŠãããããšç解ããããã®ãããçš®ã®åºçºç¹ãå¿
èŠã§ãã ãããŠãã¡ãœããã倧ãããªããã㊠JIT ããã¹ãŠãã€ã³ã©ã€ã³åãå§ããå Žåãé€ããŠããããæã
èµ·ããããšãããããŸããã ãã®ãããªå Žæã®ããã©ãŒãã³ã¹ã¯ç¬æã«äºæž¬ã§ããŸãã éåžžãã²ãã¿ãŒã¯ããŸãæ©èœããŸããã倧èŠæš¡ãªããã ã«ãŒãã«æ³šç®ãããšãäœãããŠããã®ãããããªãé¢æ°åŒã³åºããããã€ãæµ®éããŠããããšã«æ°ã¥ããŸãã ããã¯ãã²ãã¿ãŒã®æ®åã«äŒŽãåé¡ã§ããã²ãã¿ãŒãã€ã³ã©ã€ã³åãããªãçç±ã¯ãã²ãã¿ãŒã§ãããã©ãããäžæçã§ããããã§ãã éåžžã«å°ããªã³ãŒã ããŒã¹ã®å Žåã¯ããããèŠããŠããããã¯ã²ãã¿ãŒã§ãããã¯ã»ãã¿ãŒããšèšãããšãã§ããŸãã 倧èŠæš¡ãªã³ãŒã ããŒã¹ã§ã¯ãåé¢æ°ã«ã¯ç¬èªã®å±¥æŽãååšããŸãããäžè¬ã«ãã®å±¥æŽã¯èª°ã«ãç¥ãããŠããŸããã ãããã¡ã€ã©ã«ããã°ãããã«ãŒã㧠24% ã®æéã倱ãããŠããããã®ã«ãŒããäœãè¡ã£ãŠããããç解ããã«ã¯ãå
éšã®åé¢æ°ã調ã¹ãå¿
èŠããããŸãã é¢æ°ãå匷ããã«ãããç解ããããšã¯äžå¯èœã§ãããããã«ããç解ã®ããã»ã¹ã倧å¹
ã«é
ããªããŸãã ã ããããç§ã¯ã²ãã¿ãŒãšã»ãã¿ãŒã䜿çšããŸãããæ°ããã¬ãã«ã«å°éããŸããã
ã³ã¹ãã¢ãã«ã¯ã©ãã§å
¥æã§ããŸãã? ãã¡ãããäœããèªãããšã¯ã§ããŸã...ããããæåã®æ¹æ³ã¯è¡åããããšã ãšæããŸãã å°èŠæš¡ãªã³ã³ãã€ã©ãäœæããããšã¯ãã³ã¹ã ã¢ãã«ãç解ãããããèªåã®é ã«åœãŠã¯ããæè¯ã®æ¹æ³ã§ãã é»åã¬ã³ãžã®ããã°ã©ãã³ã°ã«é©ããå°ããªã³ã³ãã€ã©ãäœæããã®ã¯ãåå¿è
ã«ãšã£ãŠã¯é£ããä»äºã§ãã ããã§ããããã§ã«ããã°ã©ãã³ã°ã¹ãã«ããæã¡ã§ããã°ãããã§ååã§ãã ããçš®ã®ä»£æ°åŒãšããŠæã€æååã解æããããšãããããæ°åŠçæŒç®ã®åœä»€ãæ£ããé åºã§æœåºããããšãã¬ãžã¹ã¿ããæ£ããå€ãååŸããããšãªã©ãããããã¹ãŠãäžåºŠã«è¡ãããŸãã ãããŠããããã£ãŠãããã¡ã«è³ã«å»ã¿èŸŒãŸããŠãããŸãã ã³ã³ãã€ã©ãäœãããã®ãã¯èª°ããç¥ã£ãŠãããšæããŸãã ããã«ãããã³ã¹ã ã¢ãã«ãç解ã§ããããã«ãªããŸãã
ããã©ãŒãã³ã¹åäžã®å®è·µäŸ
ã¢ã³ãã«ãŒ: çç£æ§åäžã«åãçµãéã«ä»ã«æ³šæãã¹ãããšã¯äœã§ãã?
åŽ: ããŒã¿æ§é ã ãšããã§ãã¯ããç§ã¯é·ãéãããã®ã¯ã©ã¹ãæããŠããŸããã§ãã...
ãã®ã¢ãããŒãã§ã¯ãäœãèµ·ãã£ãŠãããã¯æããã§ããã䞊åã³ã³ãã¥ãŒãã£ã³ã°ã¯åœ¹ã«ç«ã¡ãŸããã é©åãªããŒã¿æ§é ãéžæããã ãã§ãããã©ãŒãã³ã¹ã XNUMX ååäžããããšãããããŸããã ããã«ã¯çµéšè±å¯ãªããã°ã©ããŒãããé©ããŸãã ç§ã®ç¹å¥ãªã±ãŒã¹ã§ã¯ãããã ã«ãŒãã§ã¡ã¢ãªå²ãåœãŠãè¡ããªãããšãéèŠã§ããã ããããã¹ãŠã®çå®ã§ã¯ãããŸããããäžè¬çã«ãX ãååã«å€§ããå Žåã¯ãX ã« XNUMX åãã匷調衚瀺ããã¹ãã§ã¯ãããŸããã X ã XNUMX ã®ã¬ãã€ãã®å Žåããæåããšã« XNUMX åãããè¡ããšã« XNUMX åãããŸãã¯ããã£ãŒã«ãããšã« XNUMX åããªã©ã®å²ãåœãŠãè¡ãã¹ãã§ã¯ãããŸããã ããã§æéãè²»ããããŸãã ããã¯ã©ããã£ãŠæ©èœããã®ã§ããããïŒ ç§ãé»è©±ããããŠãããšãããæ³åããŠã¿ãŠãã ãã String.split()
ãŸã㯠BufferedReader.readLine()
. Readline
ãããã¯ãŒã¯çµç±ã§éä¿¡ãããäžé£ã®ãã€ããããæ°åè¡ããšã« 2.7 åãã€æååãäœæããŸãã ç§ã¯ãã®è¡ãååŸãã解æããŠæšãŠãŸãã ãªããããæšãŠãã®ã - ãŸããããåŠçãããããã ãã§ãã ãããã£ãŠããããã® 5.4G ããèªã¿åãããåãã€ãããšã« 2.7 æåãè¡ã«æžã蟌ãŸããŸããã€ãŸãããã§ã« 2.7G ã§ããããã以äžã®çšéã«ã¯å¿
èŠãªãããããããã¯ç Žæ£ãããŸãã ã¡ã¢ãªåž¯åå¹
ãèŠããšãããã»ããµå
ã®ã¡ã¢ãªãšã¡ã¢ãª ãã¹ãééãã 4G ãããŒãããããã®åŸ 1 åã®éãã¡ã¢ãªå
ã«ããã©ã€ã³ã«éä¿¡ãããæ°ããã©ã€ã³ãäœæããããã³ã«ããããã¹ãŠããŒããŒãã«ãªããŸãã ããããããšãåŸã§ãã¹ãŠãã»ã€ããŠããŸã£ããšããŠããç§ã¯ãããèªãå¿
èŠããããŸããããŒããŠã§ã¢ã¯ãããèªã¿ãŸãã ãããŠãè¡ãäœæããã®ã«ãã£ãã·ã¥ããã£ã±ãã«ãªã£ãããããããæžãçããå¿
èŠããããŸãããã£ãã·ã¥ã¯ XNUMXG ã«å¯Ÿå¿ã§ããŸããã ãããã£ãŠãèªã¿åããã€ãããšã«ãããã« XNUMX ãã€ããèªã¿åããããã« XNUMX ãã€ããæžã蟌ã¿ãŸããæçµçã«ãããã®æ¯ç㯠XNUMX:XNUMX ã«ãªããŸãããã®æ¯çã§ã¯ãã¡ã¢ãªåž¯åå¹
ãç¡é§ã«ããŠããããšã«ãªããŸãã ãããŠãç§ããããããšã String.split()
â ãããè¡ãã®ã¯ãããæåŸã§ã¯ãããŸãããäžã«ã¯ããã« 6 ïœ 7 åã®ãã£ãŒã«ãããããããããŸããã ãããã£ãŠãCSV ãèªã¿åã£ãŠæååã解æããå€å
žçãªã³ãŒãã§ã¯ãå®éã«å¿
èŠãªã¡ã¢ãªåž¯åå¹
ã®çŽ 14:1 ãç¡é§ã«ãªããŸãã ãããã®éžæãç Žæ£ãããšãXNUMX åã®é床åäžãåŸãããŸãã
ãããŠããã¯ããã»ã©é£ããããšã§ã¯ãããŸããã ã³ãŒããæ£ããè§åºŠããèŠããšãåé¡ããããã°ãã¹ãŠãéåžžã«ç°¡åã«ãªããŸãã ã¡ã¢ãªã®å²ãåœãŠãå®å
šã«ãããã¹ãã§ã¯ãããŸãããå¯äžã®åé¡ã¯ãäœããå²ãåœãŠãŠãããã«åæ¢ããéäžã§éèŠãªãªãœãŒã¹ (ãã®å Žåã¯ã¡ã¢ãªåž¯åå¹
) ãæ¶è²»ãããŠããŸãããšã§ãã ãããŠããããã¹ãŠãçç£æ§ã®äœäžã«ã€ãªãããŸãã x86 ã§ã¯éåžžãããã»ããµ ãµã€ã¯ã«ãã¢ã¯ãã£ãã«çŒãåãå¿
èŠããããŸãããããã§ã¯ãã¹ãŠã®ã¡ã¢ãªãã¯ããã«æ©ã段éã§çŒãå°œãããŠããŸãã 解決çã¯ãæåºéãæžããããšã§ãã
åé¡ã®ãã 5 ã€ã®éšåã¯ãã¡ã¢ãª ã¹ãã©ã€ãã䜿ãæãããããšãã«ãããã¡ã€ã©ãŒãå®è¡ãããšããã®ç¬éã«ãã£ãã·ã¥ãæ»ã£ãŠããã®ãåŸ
ã€ããšã«ãªããŸãããã£ãã·ã¥ã«ã¯ãçæããã°ããã®ãŽããã€ãŸããã¹ãŠã®è¡ãè©°ãŸã£ãŠããããã§ãã ãããã£ãŠããã£ãã·ã¥ãã¹ã«ã€ãªããããããã¹ãŠã®ããŒããŸãã¯ã¹ãã¢æäœãé
ããªããŸãããã£ãã·ã¥å
šäœãé
ããªããã¬ããŒãžãããããåºãã®ãåŸ
ã£ãŠããŸãã ãããã£ãŠããããã¡ã€ã©ãŒã¯ãã«ãŒãå
šäœã«ããã£ãŠäžé®®æãªãŠã©ãŒã ã©ã³ãã ãã€ãºã衚瀺ããã ãã§ããã³ãŒãå
ã«åå¥ã®ãããåœä»€ãå Žæã¯ãããŸããã ãã€ãºã ãã ãããŠãGC ãµã€ã¯ã«ãèŠããšããããã¯ãã¹ãŠè¥ãäžä»£ã§ãããæ倧ã§ãã€ã¯ãç§ãŸãã¯ããªç§ãšããè¶
é«éã§ãã çµå±ã®ãšããããã®èšæ¶ã¯ãã¹ãŠç¬æã«æ¶ããŠããŸããŸãã ããªããäœååã®ã¬ãã€ããå²ãåœãŠããšã圌ã¯ããããåæžããåæžãããŸãåæžããŸãã ããããã¹ãŠãéåžžã«æ©ãèµ·ãããŸãã GC ãµã€ã¯ã«ãå®ããªãããµã€ã¯ã«å
šäœã«ãŠã©ãŒã ãã€ãºãçºçããããšãããããŸããããXNUMX åã®ã¹ããŒãã¢ãããå®çŸããããšèããŠããŸãã ãã®ç¬éãé ã®äžã«äœããè¿«ã£ãŠããŠããããã¯ãªãã ãã?!ããšèãããã¯ãã§ãã ã¡ã¢ãª ã¹ããªãã ãªãŒããŒãããŒã¯ãã¯ã©ã·ã㯠ãããã¬ã§ã¯è¡šç€ºãããŸãããããŒããŠã§ã¢ ããã©ãŒãã³ã¹ ã«ãŠã³ã¿ãŒ ãããã¬ãå®è¡ããŠãèªåã§çŽæ¥ç¢ºèªããå¿
èŠããããŸãã ããããããã XNUMX ã€ã®çç¶ããçŽæ¥ãããçãããšã¯ã§ããŸããã XNUMX çªç®ã®çç¶ã¯ã匷調衚瀺ããå
容ãèŠãŠãããã¡ã€ã©ãŒã«å°ãããšããXNUMX åè¡ãäœæããŸããããGC ã¯ç¡æã§æ©èœããŸããããšçããŸãã ãããèµ·ãããšããã«ãäœæãããªããžã§ã¯ããå€ãããŠã¡ã¢ãª ã¬ãŒã³å
šäœã䜿ãæããããããšã«æ°ã¥ããŸãã ãããç解ããæ¹æ³ã¯ãããŸãããæããã§ã¯ãããŸããã
åé¡ã¯ããŒã¿æ§é ã«ãããŸããçºçãããã¹ãŠã®åºç€ãšãªã裞ã®æ§é ã¯å€§ãããããã£ã¹ã¯äžã« 2.7G ããããããã®ãã®ã®ã³ããŒãäœæããããšã¯éåžžã«æãŸãããããŸããããããã¯ãŒã¯ã®ãã€ã ãããã¡ããããã«ããŒãããããšèããŸããã©ã€ã³ãžã®èªã¿æžãã 5 ååŸåŸ©ããªãããã«ããŸãã æ®å¿µãªãããJava ã¯ããã©ã«ãã§ãã®ãããªã©ã€ãã©ãªã JDK ã®äžéšãšããŠæäŸããŸããã ã§ããããã¯äºçŽ°ãªããšã§ãããïŒ åºæ¬çã«ããããã¯ç¬èªã®ãããã¡ãªã³ã°ãããæååããŒããŒãå®è£
ããããã«äœ¿çšããã 10 ïœ 100 è¡ã®ã³ãŒãã§ãããåºç€ãšãªããã€ã ãããã¡ãŒã®ã©ãããŒã§ãããªãããæååã¯ã©ã¹ã®åäœãç¹°ãè¿ããŸãã ãã®çµæãã»ãšãã©æååãæ±ããã®ããã«äœæ¥ããŠããããšãããããŸãããå®éã«ã¯ãããã¡ãžã®ãã€ã³ã¿ãããã«ç§»åããŠãããçã®ãã€ãã¯ã©ãã«ãã³ããŒãããªããããåããããã¡ãäœåºŠãåå©çšãããŸãããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã¯ããã€ã ãããã¡ãŒã®é ããããã« ãããã¡ãªã³ã°ãªã©ããã®ç®çã§èšèšãããããšãåãã§åŒãåããã®ã§ãäžèŠãªããŒã¿ã®ç¡éã®ã¹ããªãŒã ãèŠåŽããå¿
èŠã¯ãããããŸããã ãšããã§ãGC ã䜿çšããå ŽåãæåŸã® GC ãµã€ã¯ã«ã®åŸã¯åã¡ã¢ãªå²ãåœãŠãããã»ããµã«è¡šç€ºãããªããªãããšãä¿èšŒãããŠããããšãç解ããŠããŸãã? ãããã£ãŠãããããã¹ãŠããã£ãã·ã¥ã«ååšããå¯èœæ§ã¯ãªãã86% ä¿èšŒããããã¹ãçºçããŸãã x1 ã§ãã€ã³ã¿ãæäœããå Žåãã¡ã¢ãªããã¬ãžã¹ã¿ãæžç®ããã«ã¯ 2 ïœ XNUMX ã¯ãã㯠ãµã€ã¯ã«ããããŸãããããèµ·ãããšããã«ãã¡ã¢ãªããã¹ãŠãªã³ã«ãªã£ãŠãããããæ¯æããæ¯æããæ¯æããç¹°ãè¿ãããšã«ãªããŸãã
èšãæããã°ãããŒã¿æ§é ã¯å€æŽããã®ãæãé£ãããã®ã§ãã ãããŠãåŸã§ããã©ãŒãã³ã¹ãäœäžãããééã£ãããŒã¿æ§é ãéžæããããšã«æ°ä»ããããéåžžã¯å€ãã®äœæ¥ãè¡ãå¿ èŠããããŸãããããããªããšç¶æ³ãããã«æªåããŸãã ãŸã第äžã«ãããŒã¿æ§é ã«ã€ããŠèããå¿ èŠããããŸããããã¯éèŠã§ãã ããã§ã®äž»ãªã³ã¹ãã¯ãã¡ãã ããŒã¿æ§é ã«ããã£ãŠããŸãããã¡ãã ããŒã¿æ§é ã¯ããY ã®åœ¢ç¶ãæ°ã«å ¥ã£ãã®ã§ãããŒã¿æ§é X ãããŒã¿æ§é Y ã«ã³ããŒããããšããã¹ã¿ã€ã«ã§äœ¿çšããå§ããŠããŸãã ããããã³ããŒæäœ (ã³ã¹ããäœãããã«èŠããŸã) ã¯å®éã«ã¯ã¡ã¢ãªåž¯åå¹ ãç¡é§ã«ããç¡é§ãªå®è¡æéã¯ãã¹ãŠããã«åãããŸãã JSON ã®å·šå€§ãªæååããããããã POJO ãªã©ã®æ§é å DOM ããªãŒã«å€æãããå Žåããã®æååã解æã㊠POJO ãæ§ç¯ããåŸã§å床 POJO ã«ã¢ã¯ã»ã¹ãããšããæäœã«ãããäžå¿ èŠãªã³ã¹ããçºçããŸããå®ããªãã ãã ããæååã®åšå²ãå®è¡ããããã POJO ã®åšå²ãé »ç¹ã«å®è¡ããå Žåã¯é€ããŸãã ççŽã«èšã£ãŠã代ããã«æååã埩å·åããPOJO ã«å€æããã«ããããå¿ èŠãªãã®ã ããæœåºããŠã¿ãããšãã§ããŸãã ããããã¹ãŠãæ倧ã®ããã©ãŒãã³ã¹ãå¿ èŠãªãã¹ã§çºçããPOJO ããªãå Žåã¯ãäœããã®æ¹æ³ã§ãã®è¡ãçŽæ¥æãäžããå¿ èŠããããŸãã
ç¬èªã®ããã°ã©ãã³ã°èšèªãäœæããçç±
ã¢ã³ãã«ãŒ: ã³ã¹ãã¢ãã«ãç解ããã«ã¯ãç¬èªã®å°ããªèšèªãæžãå¿ èŠããããšãã£ããã£ãŠããŸãã...
åŽ: èšèªã§ã¯ãªãã³ã³ãã€ã©ã§ãã èšèªãšã³ã³ãã€ã©ã¯å¥ã®ãã®ã§ãã æãéèŠãªéãã¯é ã®äžã«ãããŸãã
ã¢ã³ãã«ãŒ: ãšããã§ãç§ã®ç¥ãéããããªãã¯ç¬èªã®èšèªãäœæããå®éšãè¡ã£ãŠããŸãã äœã®ããã«ïŒ
åŽïŒ åºæ¥ãããã§ãïŒ ç§ã¯ã»ããªã¿ã€ã¢ããŠããã®ã§ããããç§ã®è¶£å³ã§ãã ç§ã¯ãããŸã§ãã£ãšä»äººã®èšèªãå®è£ ããŠããŸããã ãŸããã³ãŒãã£ã³ã° ã¹ã¿ã€ã«ã«ãå€ãã®åŽåãè²»ãããŸããã ãŸããä»ã®èšèªã«ãåé¡ããããšæããŠããããã§ãã 銎æã¿ã®ããããšãè¡ãã«ã¯ããã£ãšè¯ãæ¹æ³ãããããã§ãã ãããŠç§ã¯ãããã䜿ããŸãã JavaãPythonããã®ä»ã®èšèªã«ãããŠãèªåèªèº«ã«åé¡ãããããšã«ããããããŠããŸãã ç§ã¯ä»ãåŒéã®ããã§ã¯ãªããçŸåœ¹ã®ä»äºã®ããã®è¶£å³ãšããŠãReact NativeãJavaScriptãElm ã§å·çããŠããŸãã ç§ã¯ Python ã§ãå·çããŠããããããã Java ããã¯ãšã³ãã®æ©æ¢°åŠç¿ã«åãçµã¿ç¶ããã§ãããã 人æ°ã®ããèšèªã¯ããããããããããã¯ãã¹ãŠèå³æ·±ãæ©èœãæã£ãŠããŸãã 誰ããç¬èªã®æ¹æ³ã§åªããŠããããããããã®æ©èœããã¹ãŠçµã¿åãããŠã¿ãããšãã§ããŸãã ããã§ãç§ã¯èªåã®èå³ã®ããããšãã€ãŸãèšèªã®æ¯ãèããç 究ããåççãªæå³è«ãèãåºãããšããŠããŸãã ãããŠä»ã®ãšããæåããŠããŸãïŒ çŸæç¹ã§ã¯ãã¡ã¢ãª ã»ãã³ãã£ã¯ã¹ã«èŠåŽããŠããŸããC ã Java ã®ããã«ã¡ã¢ãª ã»ãã³ãã£ã¯ã¹ãå®çŸããããŒããšã¹ãã¢ã«å¯Ÿãã匷åãªã¡ã¢ãª ã¢ãã«ãšã¡ã¢ãª ã»ãã³ãã£ã¯ã¹ãååŸãããããã§ãã åæã«ãHaskell ã®ãããªèªååæšè«ãåããŠããŸãã ããã§ã¯ãC ãš Java ã®äž¡æ¹ã§ãHaskell ã®ãããªåæšè«ãšã¡ã¢ãªäœæ¥ãçµã¿åãããããšããŠããŸãã ããšãã°ãããã¯ç§ããã2ã3ãæéè¡ã£ãŠããããšã§ãã
ã¢ã³ãã«ãŒ: ããªããä»ã®èšèªããããè¯ãé¢ãåãå ¥ããèšèªãæ§ç¯ããå Žåã誰ãããã®éãã€ãŸãããªãã®ã¢ã€ãã¢ãåãå ¥ããŠäœ¿çšãããšæããŸãã?
åŽ: æ°ããèšèªã¯ãŸãã«ãã®ããã«ããŠç»å ŽããŸã! Java ã C ã«äŒŒãŠããã®ã¯ãªãã§ãã? ãªããªããC ã«ã¯èª°ããç解ã§ããåªããæ§æããããJava ã¯ãã®æ§æããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠãã¿ã€ã ã»ãŒããã£ãé åå¢çãã§ãã¯ãGC ãè¿œå ããããã« C ããããã€ãã®ç¹ãæ¹åããŸãããJava ã¯ç¬èªã®ãã®ãè¿œå ããŸããã ã§ãã圌ãã¯ããªãã€ã³ã¹ãã¬ãŒã·ã§ã³ãåããŸããããïŒ èª°ããããªãã®åã«æ¥ã巚人ã®è©ã®äžã«ç«ã£ãŠããŸã - ãããé²æ©ããæ¹æ³ã§ãã
ã¢ã³ãã«ãŒ: ç§ã®ç解ã§ã¯ãããªãã®èšèªã¯ã¡ã¢ãªã»ãŒãã«ãªããŸãã Rust ããåçšãã§ãã«ãŒã®ãããªãã®ãå®è£ ããããšãèããããšã¯ãããŸãã? 圌ãèŠãããšããããŸããã圌ã«ã€ããŠã©ãæããŸãã?
åŽ: ããã§ãããç§ã¯äœå¹Žãã®éãmalloc ãš free ã䜿ã£ãŠ C ãæžããã©ã€ãã¿ã€ã ãæåã§ç®¡çããŠããŸããã ãåç¥ã®ãšãããæåã§å¶åŸ¡ããã寿åœã® 90 ïœ 95% ã¯åãæ§é ã«ãªã£ãŠããŸãã ãããŠãããæåã§è¡ãã®ã¯éåžžã«èŠçã§ãã ã³ã³ãã€ã©ã«ã¯ãããã§äœãèµ·ãã£ãŠããã®ãããããŠããªãã®ã¢ã¯ã·ã§ã³ã§äœãéæãããã®ããç°¡åã«äŒããŠã»ãããšæããŸãã äžéšã®å Žåãåçšãã§ãã«ãŒã¯ãããããã«å®è¡ããŸãã ãããŠãèªåçã«æ
å ±ã衚瀺ããããã¹ãŠãç解ãããã®ç解ãæ瀺ãããšããè² æ
ããæããããªãã¯ãã§ãã å°ãªããšãããŒã«ã« ãšã¹ã±ãŒãåæãè¡ãå¿
èŠãããã倱æããå Žåã«ã®ã¿ãæå¹æéãèšè¿°ããåã¢ãããŒã·ã§ã³ãè¿œå ããå¿
èŠããããŸãããããŠããã®ãããªã¹ããŒã ã¯ãã㌠ãã§ãã«ãŒãå®éã«æ¢åã®ã¡ã¢ãª ãã§ãã«ãŒãããã¯ããã«è€éã§ãã ã倧äžå€«ãããäœãåãããªãããã®éžæââããããã£ãšè¯ããã®ãããã¯ãã ã
ãããã£ãŠãC ã§å€ãã®ã³ãŒããæžããŠããè
ãšããŠã¯ãèªåã©ã€ãã¿ã€ã å¶åŸ¡ããµããŒãããããšãæãéèŠãªããšã ãšæããŸãã Java ã«ããã¡ã¢ãªäœ¿çšéã«ãããããããŠãããäž»ãªäžæºã¯ GC ã§ãã Java ã§ã¡ã¢ãªãå²ãåœãŠãå ŽåãæåŸã® GC ãµã€ã¯ã«ã§ããŒã«ã«ã«ãã£ãã¡ã¢ãªã¯åãæ»ãããŸããã ããæ£ç¢ºãªã¡ã¢ãªç®¡çãè¡ãèšèªã§ã¯ãããã¯åœãŠã¯ãŸããŸããã malloc ãåŒã³åºããšãé垞䜿çšãããã°ããã®ã¡ã¢ãªãããã«ååŸãããŸãã éåžžãèšæ¶ã«å¯ŸããŠäžæçãªåŠçãè¡ã£ãŠãããã«èšæ¶ãæ»ããŸãã ãããŠãããã« malloc ããŒã«ã«æ»ãã次㮠malloc ãµã€ã¯ã«ã§åã³åãåºããŸãã ãããã£ãŠãå®éã®ã¡ã¢ãªäœ¿çšéã¯ãç¹å®ã®æç¹ã§ã®çãããªããžã§ã¯ãã®ã»ãããšãªãŒã¯ã«åæžãããŸãã ãããŠããã¹ãŠãå®å
šã«åå£ãªæ¹æ³ã§æŒæŽ©ããªããã°ãã¡ã¢ãªã®ã»ãšãã©ã¯ãã£ãã·ã¥ãšããã»ããµã«ä¿åãããé«éã«åäœããŸãã ãã ããé©åãªå Žæã§é©åãªé åºã§åŒã³åºããã malloc ãš free ã«ããå€ãã®æåã¡ã¢ãªç®¡çãå¿
èŠã§ãã Rust ã¯ãããç¬èªã§é©åã«åŠçã§ãã次㮠GC ãµã€ã¯ã«ã§ã¡ã¢ãªã解æŸãããã®ãåŸ
ã€ã®ã§ã¯ãªããã¡ã¢ãªæ¶è²»ãçŸåšã®èšç®ã®ã¿ã«çµã蟌ãŸãããããå€ãã®å Žåããã«åªããããã©ãŒãã³ã¹ãåŸãããŸãã ãã®çµæãããã©ãŒãã³ã¹ãåäžãããéåžžã«èå³æ·±ãæ¹æ³ãåŸãããŸããã ãããŠéåžžã«åŒ·åã§ããã€ãŸãããã£ã³ããã¯çšã®ããŒã¿ãåŠçãããšãã«ãã®ãããªããšãè¡ã£ããšãããçŽ XNUMX åã®é«éåãå¯èœã«ãªããŸããã ããã¯ãç¹ã«ããã»ããµãŒãé«éåããŠãããããŸã æ¹åãåŸ
ãããŠããäžçã§ã¯ãããªã倧ããªåŸæŒãã§ãã
ããã©ãŒãã³ã¹ãšã³ãžãã¢ã®ãã£ãªã¢
ã¢ã³ãã«ãŒïŒãã£ãªã¢å šè¬ã«ã€ããŠããèããããã§ãã ããªã㯠HotSpot ã§ã® JIT ã®ä»äºã§æåã«ãªãããã®åŸãåãã JVM äŒç€Ÿã§ãã Azul ã«ç§»ç±ããŸããã ããããç§ãã¡ã¯ãã§ã«ãœãããŠã§ã¢ãããããŒããŠã§ã¢ã«åãçµãã§ããŸããã ãããŠçªç¶ãããã°ããŒã¿ãšæ©æ¢°åŠç¿ããããŠäžæ£æ€åºã«åãæ¿ããŸããã ã©ãããŠãããªã£ãïŒ ãããã¯éçºã®ãŸã£ããç°ãªãåéã§ãã
åŽ: ç§ã¯ããªãé·ãéããã°ã©ãã³ã°ãããŠãããããŸããŸãªã¯ã©ã¹ãåè¬ããããšãã§ããŸããã ãããŠã人ã ãããããJava ã® JIT ãå®è¡ããã®ã¯ããªãã§ãã!ããšèšããããšãããã¯ãã€ãé¢çœããã®ã§ãã ãããããã®åã«ãç§ã¯ PostScript ã®ã¯ããŒã³ã«åãçµãã§ããŸãããPostScript ã¯ããã€ãŠ Apple ãã¬ãŒã¶ãŒ ããªã³ã¿ã«äœ¿çšããŠããèšèªã§ãã ãã®åã«ãForth èšèªã®å®è£ ãè¡ããŸããã ç§ã«ãšã£ãŠå ±éã®ããŒãã¯ããŒã«éçºã ãšæããŸãã ç§ã¯ãããŸã§ãã£ãšãä»ã®äººãã¯ãŒã«ãªããã°ã©ã ãæžãããã®ããŒã«ãäœãç¶ããŠããŸããã ããããç§ã¯ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ããã©ã€ããŒãã«ãŒãã« ã¬ãã«ã®ãããã¬ãŒãOS éçºçšã®èšèªã®éçºã«ãæºãã£ãŠããŸãããæåã¯äºçŽ°ãªããšã§ããããæéãçµã€ã«ã€ããŠãŸããŸãè€éã«ãªã£ãŠããŸããã ããããäž»ãªãããã¯ã¯äŸç¶ãšããŠããŒã«ã®éçºã§ãã ç§ã®äººçã®å€§éšå㯠Azul ãš Sun ã®éãè¡ãæ¥ãããã㯠Java ã«é¢ãããã®ã§ããã ããããããã°ããŒã¿ãšæ©æ¢°åŠç¿ã«èå³ãæã£ããšããç§ã¯æŽŸæãªåžœåããã¶ã£ãŠããèšããŸãããããããä»ãç§ãã¡ã¯ç°¡åã§ã¯ãªãåé¡ã«çŽé¢ããŠããŸãããããŠãããããã®èå³æ·±ãããšãèµ·ãã£ãŠããŠã人ã ã¯äœããããŠããã®ã§ããã ããã¯çŽ æŽãããçºå±ã®éã§ãã
ã¯ããç§ã¯åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã倧奜ãã§ãã ç§ã®æåã®ä»äºã¯ãC 倧åŠã®åŠçãšããŠã®åºåãããžã§ã¯ãã§ããã ããã¯ãå®éã®ã¢ããã° ã¢ãã©ã€ã¶ãŒã«ãã£ãŠçæãããã¢ããã° OCR çšã®ããŒã¿ãåéãã Zilog Z80 ãããäžã®åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã§ããã ããã¯ã¯ãŒã«ã§å®å
šã«ã¯ã¬ã€ãžãŒãªãããã¯ã§ããã ããããåé¡ããããäžéšã®éšåãæ£ããèªèãããªãã£ããããåçãåãåºããŠãç®ã§èªãã§å
容ãå ±åã§ãã人ã«èŠããŠãããŒã¿ã䜿çšããä»äºããããŸãããç¬èªã®èšèªãæã£ãŠããŸããã ããããã¹ãŠãåŠçããããã¯ãšã³ãããããŸãã - Z80 㯠vt100 端æ«ãšäžŠè¡ããŠå®è¡ãããŸã - 80 人ããã 80 ã€ã§ãããZ80 ã«ã¯äžŠåããã°ã©ãã³ã° ã¢ãã«ããããŸããã ã¹ã¿ãŒæ§æå
ã®ãã¹ãŠã® ZXNUMX ã«ãã£ãŠå
±æãããå
±éã®ã¡ã¢ãªã ããã¯ãã¬ãŒã³ãå
±æãããRAM ã®ååã¯ãããã¯ãŒã¯å
ã§å
±æãããæ®ãã®ååã¯ãã©ã€ããŒããå¥ã®ãã®ã«äœ¿çšãããŸããã å
±æ...åå
±æã¡ã¢ãªãåãããéåžžã«è€éãªäžŠååæ£ã·ã¹ãã ã ãã€ã ã£ããâŠæãåºããŸããããXNUMX幎代åã°ã®ã©ããã§ããã ããªãæã®ããšã
ã¯ãã30 幎ãšããã®ã¯ããªãæã®ããšã ãšä»®å®ããŸããããåæ£ã³ã³ãã¥ãŒãã£ã³ã°ã«é¢é£ããåé¡ã¯ããªãé·ãéååšããŠããã人ã
ã¯é·ãéæŠäºãç¶ããŠããŸããã
H2O ã«é¢ããŠç§ãæãã€ããã®ã¯ã䞊ååŠçãã©ãã«é ãããã©ãã«é ãããªãããå€æãã責任ã¯éçºè èªèº«ã«ãããšããããšã§ãã ç§ã¯ãé«ããã©ãŒãã³ã¹ã®ã³ãŒããç°¡åãã€ã·ã³ãã«ã«äœæã§ããã³ãŒãã£ã³ã° ã¢ãã«ãæãã€ããŸããã ããããå®è¡é床ã®é ãã³ãŒããæžãã®ã¯é£ãããèŠãç®ãæªããªããŸãã é ãã³ãŒããçå£ã«æžãå¿ èŠããããéæšæºçãªæ¹æ³ã䜿çšããå¿ èŠããããŸãã ãã¬ãŒãã³ãŒãã¯äžç®ã§ããããŸãã ãã®çµæãéåžžã¯é«éã«å®è¡ãããã³ãŒããäœæã§ããŸãããå ±æã¡ã¢ãªã®å Žåã¯ã©ãããã°ããããç解ããå¿ èŠããããŸãã ããããã¹ãŠã¯å€§ããªé åã«é¢é£ä»ããããŠãããããã§ã®åäœã¯äžŠå Java ã«ãããäžæ®çºæ§ã®å€§ããªé åã«äŒŒãŠããŸãã ã€ãŸãã1 ã€ã®ã¹ã¬ããã䞊åé åã«æžã蟌ã¿ããã®ãã¡ã® 2 ã€ãåã¡ãããã«å¿ããŠãã 2 ã€ãè² ããã©ã¡ããã©ã¡ãã§ãããããããªããšæ³åããŠãã ããã ããããæ®çºæ§ã§ãªãå Žåãé åºã¯ä»»æã§æ§ããŸãããããã¯éåžžã«ããŸãæ©èœããŸãã 人ã ã¯æäœã®é åºãéåžžã«æ°ã«ããŠãããé©åãªå Žæã« volatile ãé 眮ããé©åãªå Žæã«ã¡ã¢ãªé¢é£ã®ããã©ãŒãã³ã¹ã®åé¡ãçºçããããšãæåŸ ããŠããŸãã ãã以å€ã®å Žåã¯ããã¹ãŠã®è€éãªã±ãŒã¹ãèªåçã«äžŠåã«ãªãããšãæåŸ ããŠã2 ãã N (N ã¯æ°å ) ãŸã§ã®ã«ãŒã圢åŒã§ã³ãŒããèšè¿°ããã ãã§ãããããã§ã¯æ©èœããŸããã ããããHXNUMXO ã§ã¯ããã㯠Java ã§ã Scala ã§ããããŸãããå¿ èŠã«å¿ããŠããJava ãã€ãã¹ ãã€ãã¹ããšèããããšãã§ããŸãã ããã¯éåžžã«æ確ãªããã°ã©ãã³ã° ã¹ã¿ã€ã«ã§ãããã«ãŒããé åã䜿çšããåçŽãª C ãŸã㯠Java ã³ãŒããèšè¿°ããã®ãšäŒŒãŠããŸãã ãããåæã«ãã¡ã¢ãªã¯ãã©ãã€ãåäœã§åŠçã§ããŸãã ä»ã§ãHXNUMXOã䜿ã£ãŠããŸãã ç§ã¯ããŸããŸãªãããžã§ã¯ãã§æã ããã䜿çšããŸãããããã§ããããæãé«éã§ããã競åä»ç€Ÿãããæ°ååé«éã§ãã å圢åŒã®ããŒã¿ã䜿çšããŠããã° ããŒã¿ãå®è¡ããŠããå ŽåãHXNUMXO ã«åã€ã®ã¯éåžžã«å°é£ã§ãã
æè¡çãªèª²é¡
ã¢ã³ãã«ãŒ: ããªãã®ãã£ãªã¢å šäœã®äžã§æ倧ã®èª²é¡ã¯äœã§ãã?
åŽ: ç§ãã¡ãè°è«ããŠããã®ã¯ãåé¡ã®æè¡çãªéšåã§ããããããšãéæè¡çãªéšåã§ãã? æ倧ã®èª²é¡ã¯æè¡çãªãã®ã§ã¯ãªããšæããŸãã
æè¡çãªèª²é¡ã«é¢ããŠã¯ã ç§ã¯ãã 圌ããåããã ãã§ãã äœãæ倧ã®ãã®ã ã£ãã®ãããããããŸããããéåžžã«èå³æ·±ããã®ãããã€ããããããªãã®æéããããã粟ç¥çãªéãã§ããã ãµã³ã«è¡ã£ããšããç§ã¯é«éãªã³ã³ãã€ã©ãäœãã ãããšç¢ºä¿¡ããŠããŸããããå€ãã®å
茩ãã¡ã¯ç§ãæåããããšã¯ãªããšèšããŸããã ããããç§ã¯ãã®ãã¹ã«åŸããã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ãŸã§ã³ã³ãã€ã©ãäœæãããšãããéåžžã«é«éã§ããã ããã¯çŸåšã® C1 ãšåããããé«éã§ããããåœæã®ã¢ãã±ãŒã¿ãŒã¯ã¯ããã«é
ãã£ãã®ã§ãåŸããèãããšãããã¯å€§èŠæš¡ãªããŒã¿æ§é ã®åé¡ã§ããã ã°ã©ãã£ã«ã« ã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ãäœæããããã«å¿
èŠã§ããããåœæååšããéåžžã«éèŠã§ãã£ãã³ãŒãã®è¡šçŸåãšé床ã®éã®ãžã¬ã³ããç解ããŠããŸããã§ããã ããŒã¿æ§é ã¯éåžžãåœæã® x86 ã®ãã£ãã·ã¥ ãµã€ãºãè¶
ããŠããããšãå€æããŸããããã®ãããæåã¯ã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ãç·ãžãã¿ãŒæéã® 5 ïœ 10 ããŒã»ã³ãã解決ãããšä»®å®ããŠããããå®éã«ã¯ããã§ãã£ãããšãå€æããŸããã 50ããŒã»ã³ãã
æéãçµã€ã«ã€ããŠãã³ã³ãã€ã©ã¯ããã¯ãªãŒã³ã§å¹ççã«ãªããã²ã©ãã³ãŒããçæããã±ãŒã¹ãå¢ããªããªããããã©ãŒãã³ã¹ã¯ãŸããŸã C ã³ã³ãã€ã©ãçæãããã®ã«äŒŒãŠããŸããã ã C ã®ãããªã³ãŒããæžãã°ãããå€ãã®å ŽåãC ã®ãããªããã©ãŒãã³ã¹ãåŸãããŸãã ãããŠãããã«é²ãã°é²ãã»ã©ã挞è¿çã«ã¬ãã« C ã«äžèŽããã³ãŒããåŸãããããšãå€ããªããã³ãŒãã®å®è¡ãéããé
ããã«é¢ä¿ãªããã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ã¯å®å
šãªãã®ã®ããã«èŠãå§ããŸããã ç§ã¯ã¢ãã±ãŒã¿ãããé©åã«éžæã§ããããã«ããããã«äœæ¥ãç¶ããŸããã 圌ã¯ãŸããŸãé
ããªããŸããããä»ã®èª°ã察åŠã§ããªãå Žåã«ã¯ããŸããŸãåªããããã©ãŒãã³ã¹ãçºæ®ããŸããã ã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ã«é£ã³èŸŒã¿ãããã« 5 ãæåã®äœæ¥ãåã蟌ããšãçªç¶ã³ãŒãå
šäœã®å®è¡ã XNUMX% éããªããŸãã ãã®ãããªããšã¯äœåºŠãèµ·ãããã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ã¯äžçš®ã®èžè¡äœåãšãªããŸããã誰ããããã奜ããå«ããã決ãŸããã¢ã«ãããŒã®äººã
ã¯ããªããã¹ãŠããã®ããã«è¡ãããã®ãããããªãããããªãã®ãããšããããŒãã«ã€ããŠè³ªåããŸããã
åé¡ã¯ãã€ã³ã©ã€ã³å察象ã®ã¡ãœãããè¿œå ããŠã€ã³ã©ã€ã³åé åãå¢ãããŠãããšã䜿çšãããå€ã®ã»ãããç¬æã«ã¬ãžã¹ã¿æ°ãè¶ ããŠããŸããããããåé€ããªããã°ãªããªãããšã§ãã éåžžãèšçã¬ãã«ã¯ã¢ãã±ãŒã¿ãŒãè«Šãããšãã«èµ·ãããæµåºã®æåãªåè£ã® XNUMX ã€ãå¥ã®åè£ã®äŸ¡å€ãæã€ããã«ãªããäžè¬ã«èã£ãœããã®ã売ãããšã«ãªããŸãã ããã§ã®ã€ã³ã©ã€ã³åã®äŸ¡å€ã¯ããªãŒããŒãããã®äžéš (åŒã³åºããšä¿åã®ãªãŒããŒããã) ã倱ãããå éšã®å€ã確èªããŠããã«æé©åã§ããããšã§ãã ã€ã³ã©ã€ã³åã®ã³ã¹ãã¯ãå€æ°ã®ã©ã€ãå€ã圢æãããããšã§ãããã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ãŒãå¿ èŠä»¥äžã«çãå°œããŠããŸããšãããã«å€±ãããŸãã ãããã£ãŠãã»ãšãã©ã®ã¢ãã±ãŒã¿ãŒã¯åé¡ãæ±ããŠããŸããã€ã³ã©ã€ã³åãç¹å®ã®ç·ãè¶ ãããšãäžçäžã®ãã¹ãŠãåæžããå§ããçç£æ§ããã€ã¬ã«æµãããå¯èœæ§ããããŸãã ã³ã³ãã€ã©ãå®è£ ãã人ã¯ãããã€ãã®ãã¥ãŒãªã¹ãã£ãã¯ãè¿œå ããŸããããšãã°ãå²ãåœãŠã«ãã£ãŠãã¹ãŠãå°ç¡ãã«ãªã£ãŠããŸããããååã«å€§ããªãµã€ãºããã€ã³ã©ã€ã³åãåæ¢ãããªã©ã§ãã ããããããã©ãŒãã³ã¹ ã°ã©ãã®ããããã©ã®ããã«ããŠåœ¢æããããã§ããã€ã³ã©ã€ã³åãã€ã³ã©ã€ã³åãããšãããã©ãŒãã³ã¹ã¯ãã£ãããšæé·ãããã®åŸããŒã ãèµ·ãããŸãã â 䞊ã³ãããããã§ã¢ãããã¡ã®ããã«åããŠããŸããŸãã Java ãç»å Žããåã¯ããã¹ãŠããã®ããã«æ©èœããŠããŸããã Java ã§ã¯ããã«å€ãã®ã€ã³ã©ã€ã³åãå¿ èŠãšãªããããã¢ãã±ãŒã¿ãã¯ã©ãã·ã¥ããã«å¹³æºåããããã«ã¢ãã±ãŒã¿ãããç©æ¥µçã«ããå¿ èŠããããŸãããã€ã³ã©ã€ã³åãå€ããããšæµåºãå§ããŸãããããã§ããããæµåºããªããªããç¬éã¯æ¥ãŸãã ããã¯èå³æ·±ã芳å¯ã§ãããã©ããããšããªãæãã€ããã ãã§ãèªæã§ã¯ãããŸããããããŸããããŸããã ç§ã¯ç©æ¥µçãªã€ã³ã©ã€ã³åãåãäžããJava ãš C ã®ããã©ãŒãã³ã¹ã䞊è¡ããŠæ©èœããå Žæã«é£ããŠè¡ããŸããã ãããã¯éåžžã«è¿ããã®ã§ãããç§ã¯ C ã³ãŒããªã©ãããã¯ããã«é«é㪠Java ã³ãŒããæžãããšãã§ããŸãããå¹³åããŠãç©äºã®å šäœåããèŠããšãã»ãŒåçã§ãã ãã®å©ç¹ã®äžéšã¯ãå¯èœãªéãæããªã€ã³ã©ã€ã³åãå¯èœã«ããã¬ãžã¹ã¿ ã¢ãã±ãŒã¿ã ãšæããŸãã ç®ã«èŠãããã®ãã¹ãŠãã€ã³ã©ã€ã³åããã ãã§ãã ããã§åé¡ãšãªãã®ã¯ãã¢ãã±ãŒã¿ãŒãããŸãæ©èœãããã©ãããçµæãšããŠã€ã³ããªãžã§ã³ãã«åäœããã³ãŒããåŸããããã©ããã§ãã ããã¯å€§ããªèª²é¡ã§ãããããããã¹ãŠãç解ãããããæ©èœãããã®ã§ãã
ã¬ãžã¹ã¿å²ãåœãŠãšãã«ãã³ã¢ã«ã€ããŠå°ã
ãŠã©ãžããŒã«: ã¬ãžã¹ã¿å²ãåœãŠã®ãããªåé¡ã¯ãããçš®ã®æ°žé ã®çµããã®ãªãããŒãã®ããã«æããŸãã ææã«æããã¢ã€ãã¢ãå®éã«ã¯å€±æããããšããããŸã§ã«ãã£ãã§ãããã?
åŽïŒ 確ãã«ïŒ ã¬ãžã¹ã¿å²ãåœãŠã¯ãNP å®å šåé¡ã解決ããããã®ãã¥ãŒãªã¹ãã£ãã¯ãèŠã€ããããšããé åã§ãã ãããŠå®ç§ãªè§£æ±ºçãéæããããšã¯æ±ºããŠäžå¯èœã§ããã? ããã¯ãŸã£ããäžå¯èœã§ãã èŠãŠãã ãããAhead of Time ã³ã³ãã€ã« - ãããããŸãåäœããŸããã ããã§ã®äŒè©±ã¯ãããã€ãã®å¹³åçãªã±ãŒã¹ã«ã€ããŠã§ãã å žåçãªããã©ãŒãã³ã¹ã«ã€ããŠã¯ãè¯ããšæãããå žåçãªããã©ãŒãã³ã¹ã枬å®ããŠã¿ãŠãã ãããçµå±ã®ãšããããããæ¹åããããã«åãçµãã§ããã®ã§ãã ã¬ãžã¹ã¿å²ãåœãŠã¯ããã©ãŒãã³ã¹ã«é¢ãããããã¯ã§ãã æåã®ãããã¿ã€ããå®æãããããããåäœããå¿ èŠãªãã®ããã€ã³ãããŠãããã©ãŒãã³ã¹ã®äœæ¥ãå§ãŸããŸãã äžæã«æž¬ãæ¹æ³ãåŠã¶å¿ èŠããããŸãã ã©ãããŠãããéèŠã§ããïŒ æ確ãªããŒã¿ãããã°ãããŸããŸãªé åã調ã¹ãŠãããããããã§ã¯åœ¹ã«ç«ã£ãããããã§ãã¹ãŠãå£ãããããšãããããŸãã ããã€ãã®è¯ãã¢ã€ãã¢ãæãã€ããæ°ãããã¥ãŒãªã¹ãã£ãã¯ãè¿œå ãããšãçªç¶ãã¹ãŠãå¹³åããŠããå°ãããŸãæ©èœãå§ããŸãã ãããã¯å§ãŸããªãã 以åã®ã¢ãã±ãŒã¿ãŒãšéçºãå·®å¥åãã XNUMX% ã®ããã©ãŒãã³ã¹ãäºãã±ãŒã¹ãäœåºŠããããŸããã ãããŠãæ¯å次ã®ããã«ãªããŸããã©ããã§åã¡ãã©ããã§è² ããŸãã åªããããã©ãŒãã³ã¹åæããŒã«ãããã°ã倱ãããã¢ã€ãã¢ãèŠã€ããŠã倱æã®çç±ãç解ããããšãã§ããŸãã ããããããã¹ãŠãçŸç¶ã®ãŸãŸã«ããŠãã䟡å€ããããããããŸããããããã¯ãããçå£ã«åŸ®èª¿æŽããã¢ãããŒããåããããããšãå¥ã®äœããä¿®æ£ããããšã«åãçµã䟡å€ããããããããŸããã ããã¯ããããã®ããšã§ãïŒ ãã®ã¯ãŒã«ãªããã¯ãäœæããŸãããããããšãããšãããå¿ èŠã§ããããããåèšãããšãããã€ãã®æ¹åãåŸãããŸãã ãããŠå€ç¬ãªäººã¯å€±æããå¯èœæ§ããããŸãã ããã¯ãNP å®å šåé¡ã«å¯Ÿããããã©ãŒãã³ã¹äœæ¥ã®æ§è³ªã§ãã
ãŠã©ãžããŒã«: ã¢ãã±ãŒã¿ã§ã®ãã€ã³ããªã©ã¯ãã§ã«è§£æ±ºãããåé¡ã§ãããããªæ°ãããŸãã ãŸããããªãã®èšã£ãŠããããšããå€æãããšããããããªãã«æ±ºãŸã£ãŠããã®ã§ãããã¯ããã§äŸ¡å€ããããŸãã...
åŽïŒããèªäœã¯è§£æ±ºãããŠããŸããã ãããã解決ãã«å€ããã®ã¯ããªãèªèº«ã§ãã é£ããåé¡ãããã解決ããå¿ èŠããããŸãã ãããå®äºããããçç£æ§ã®åäžã«åãçµã¿ãŸãã ãã®äœæ¥ã«ã¯ããã«å¿ããŠã¢ãããŒãããå¿ èŠããããŸãããã³ãããŒã¯ãå®è¡ããã¡ããªã¯ã¹ãåéããåã®ããŒãžã§ã³ã«ããŒã«ããã¯ãããšãã«å€ãããã¯ãåã³åäœãå§ãã (ãŸãã¯ãã®éã§åæ¢ãã) ç¶æ³ã説æããŸãã ãããŠäœããéæãããŸã§è«Šããªãã§ãã ããã ãã§ã«è¿°ã¹ãããã«ãããŸããããªãã£ãã¯ãŒã«ãªã¢ã€ãã¢ã¯ãããŸãããã¢ã€ãã¢ã®ã¬ãžã¹ã¿ã®å²ãåœãŠã®åéã§ã¯ãããã¯ã»ãŒç¡éã«ãããŸãã ããšãã°ãç§åŠåºçç©ãèªãããšãã§ããŸãã çŸåšããã®é åã¯ã¯ããã«ãã£ãããšåãå§ããŠãããè¥ãé ãããããæ確ã«ãªããŸããã ãããããã®åéã§ã¯ç¡æ°ã®äººã ãåããŠããã圌ãã®ã¢ã€ãã¢ã¯ãã¹ãŠè©ŠããŠã¿ã䟡å€ããããå šå¡ãåŸ æ©äžã§ãã ãããŠãè©ŠããŠã¿ãªããšãã®è¯ãã¯ããããŸããã ã¢ãã±ãŒã¿ã¯å€ãã®ããšãå®è¡ããäžéšã®ã¢ã€ãã¢ã¯ç¹å®ã®ã¢ãã±ãŒã¿ã§ã¯æ©èœããŸããããå¥ã®ã¢ãã±ãŒã¿ã§ã¯ç°¡åã«æ©èœããããããããã¯ã¢ãã±ãŒã¿å ã®ä»ã®ãã¹ãŠãšã©ã®çšåºŠããŸãçµ±åãããŸããã ã¢ãã±ãŒã¿ãåã€ããã®äž»ãªæ¹æ³ã¯ãäœéãã¹ãã¡ã€ã³ ãã¹ã®å€åŽã«åŒãåºããäœéãã¹ã®å¢çã«æ²¿ã£ãŠåŒ·å¶çã«åå²ããããšã§ãã ãããã£ãŠãGC ãå®è¡ãããå Žåã¯ãäœéã®ãã¹ãéžæããæé©åã解é€ããäŸå€ãã¹ããŒãããªã©ãããããã¹ãŠã®ããšã¯æ¯èŒçãŸãã§ããããšãããããŸãã ãããŠããããã¯æ¬åœã«çããã§ããç§ã¯èª¿ã¹ãŸããã è¿œå ã®äœæ¥ãè¡ããšããããã®é ããã¹ã®å€ãã®å¶éã解é€ãããŸããããããã®ãã¹ã¯é ãããã£ãã«ç§»åããªããããå®éã«ã¯åé¡ã«ãªããŸããã ããšãã°ãnull ãã€ã³ã¿ãŒ - ããã¯æ±ºããŠèµ·ãããŸãããã? ããŸããŸãªããšã®ããã«è€æ°ã®ãã¹ãå¿ èŠã§ãããããããã¡ã€ã³ã®ãã¹ã劚ããŠã¯ãªããŸããã
ãŠã©ãžããŒã«: äžåºŠã«äœåãã®ã³ã¢ããããã«ãã³ã¢ã«ã€ããŠã¯ã©ãæããŸãã? ããã¯äŸ¿å©ãªãã®ã§ããïŒ
åŽ: GPU ã®æåã¯ãGPU ãéåžžã«äŸ¿å©ã§ããããšã瀺ããŠããŸãã
ãŠã©ãžããŒã«ïŒããªãå°éçã§ããã æ±çšããã»ããµã«ã€ããŠã¯ã©ãã§ãã?
åŽïŒããã§ããããããAzulã®ããžãã¹ã¢ãã«ã§ããã ãã®çãã¯ã人ã ãäºæž¬å¯èœãªããã©ãŒãã³ã¹ãæ¬åœã«éèŠããŠããæ代ã«æ»ã£ãŠããŸããã åœæã䞊åã³ãŒããæžãã®ã¯å°é£ã§ããã H2O ã³ãŒãã£ã³ã° ã¢ãã«ã¯æ¡åŒµæ§ãé«ããªããŸãããæ±çšã¢ãã«ã§ã¯ãããŸããã ãããã GPU ã䜿çšããå Žåãããããå°ãäžè¬çã§ãã ç§ãã¡ã¯ãã®ãããªãã®ãéçºããããšã®è€éãã«ã€ããŠè©±ããŠããã®ã§ããããããããšãããã䜿çšããããšã®è€éãã«ã€ããŠè©±ããŠããã®ã§ããããïŒ ããšãã°ãAzul ã¯ããã£ãã·ã¥ãå°ããã®ã¯æ£åžžã§ãããšãããããŸãæçœã§ã¯ãªãèå³æ·±ãæèšãç§ã«æããŠãããŸããã
人çæ倧ã®ææŠ
ãŠã©ãžããŒã«: æè¡ç以å€ã®èª²é¡ã«ã€ããŠã¯ã©ãã§ãã?
åŽ: æ倧ã®èª²é¡ã¯ã人ã«èŠªåã§èŠªåã«ãªããªãããšã§ããã ãã®çµæãç§ã¯åžžã«æ¥µåºŠã®å¯Ÿç«ç¶æ³ã«é¥ã£ãŠããŸããã ç©äºãããŸããããªãããšã¯ããã£ãŠããŸãããããããã®åé¡ãã©ã®ããã«é²ããããããããã察åŠã§ããªãã£ããã®ã§ãã ãã®ããã«ããŠãäœå幎ã«ããããé·æçãªåé¡ã®å€ããçºçããŸããã Java ã« C1 ããã³ C2 ã³ã³ãã€ã©ããããšããäºå®ã¯ãããã®çŽæ¥ã®çµæã§ãã Java ã§ãã«ãã¬ãã«ã®ã³ã³ãã€ã«ã XNUMX 幎é£ç¶ã§è¡ãããªãã£ããšããäºå®ããçŽæ¥ã®çµæã§ãã ãã®ãããªã·ã¹ãã ãå¿ èŠã ã£ãããšã¯æããã§ããããªããããååšããªãã£ãã®ãã¯æããã§ã¯ãããŸããã äžäººã®ãšã³ãžãã¢ããŸãã¯ãšã³ãžãã¢ã®ã°ã«ãŒãã«åé¡ããããŸããã ãã€ãŠãç§ã Sun ã§åãå§ãããšããç§ã¯... ããã§ãããåœæã«éãããç§ã¯éåžžããã¹ãŠã®ããšã«ã€ããŠåžžã«èªåã®æèŠãæã£ãŠããŸããã ãããŠãããªãã¯èªåã®ãã®çå®ãåãæ¢ããŠããããæ£é¢ããäŒããããšãã§ããã®ã¯æ¬åœã ãšæããŸããã ç¹ã«ç§ã¯ã»ãšãã©ã®å Žåãé©ãã»ã©æ£ããã£ãã®ã§ã ãããŠããã®ã¢ãããŒããæ°ã«å ¥ããªãå Žåã¯...ç¹ã«ãæããã«ééã£ãŠããŠãã³ã»ã³ã¹ãªããšãããŠããå Žåã¯...äžè¬ã«ããã®åœ¢åŒã®ã³ãã¥ãã±ãŒã·ã§ã³ã蚱容ã§ãã人ã¯ã»ãšãã©ããŸããã ç§ã®ããã«ã§ãã人ãããŸããã ç§ã¯èªåã®äººçå šäœãå®å䞻矩ã®ååã«åºã¥ããŠç¯ããŠããŸããã ããããªããäœãééã£ãããšãç§ã«èŠããããç§ã¯ããã«æ¯ãè¿ã£ãŠãããªãã¯ãã³ã»ã³ã¹ãªããšãèšã£ãããšèšãã§ãããã åæã«ããã¡ããè¬çœªããã¡ãªãããããã°ãããèæ ®ããä»ã®æ£ããè¡åãåãã€ããã§ãã äžæ¹ã§ãç·æéã®é©ãã»ã©å€§ããªå²åã«ã€ããŠã¯ãç§ã¯é©ãã»ã©æ£ããã§ãã ãããŠäººéé¢ä¿ãããŸããããŸããã 芪åã«ããã€ããã¯ãããŸããããççŽã«è³ªåããŠããŸãã ãããã¯æ±ºããŠããŸããããŸããããªããªããXNUMXãXNUMXãXNUMXã ããã§ããã ãããŠåœŒãã¯ãããïŒããšããæãã§ããã ããããç¡èŠããã»ãããã圱é¿ã¯ä»ã«ããããŸãããããšãã°ã劻ãšã®é¢å©ãšãã®åŸã® XNUMX 幎éã®ãã€ç ã«ã€ãªãã£ãçµæã§ãã
ãã£ã¬ã³ãžãšã¯ãäœãã§ãããã§ããªãããäœãéèŠã§äœãããã§ãªããã«ã€ããŠã®äººã ã®èªèãšã®éãã§ãã ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã«é¢ããŠã¯å€ãã®èª²é¡ããããŸããã ç§ã¯ä»ã§ãå€ãã®ã³ãŒããæžããŠããŸãããåœæ㯠2 ã€ã®ã¿ã¹ã¯ã«éäžããã®ã§ã¯ãªãã䞊åã¿ã¹ã¯ãå€ãããŠå¹çãæªãã£ããããé床ãäœäžããããšãããããŸããã æ¯ãè¿ã£ãŠã¿ããšãJava JIT ã³ãã³ãã§ãã CXNUMX ã³ãã³ãã®ã³ãŒãã®ååãç§ãæžããŸããã 次ã«éãããã°ã©ãã¯ååã®é床ã§æžãããã®æ¬¡ã®ããã°ã©ãã¯ååã»ã©é ããªããææ°é¢æ°çã«æžå°ããŸããã ãã®åã® XNUMX 人ç®ã®äººã¯ãšãŠããšãŠãé ãã£ãã§ã - ããã¯ãã€ãèµ·ããããšã§ã! ããããã®ã³ãŒãã«è§ŠããŸããã ç§ã¯èª°ãäœãæžãããã芳å¯ããäŸå€ãªã圌ãã®ã³ãŒããèŠã€ãããããããã¬ãã¥ãŒããããã§ã圌ãã®èª°ãããèªåèªèº«ãæžãç¶ããŸããã ãã®ã¢ãããŒãã¯äººã ã«å¯ŸããŠããŸãããŸããããŸããã ããã奜ãŸãªã人ãããŸãã ãããŠãããã«èããããªããªããšãããããçš®é¡ã®èŠæ ãå§ãŸããŸãã ããšãã°ãã³ãŒããæžããããŠããŒã ã«å±éºãåã¶ããã³ãŒãã£ã³ã°ãããããšèšãããããšããããŸãããç§ã«ã¯ãã¹ãŠãåè«ã®ããã«èãããŸãããããŒã ã®æ®ãã®ã¡ã³ããŒãããªããªã£ãŠãç§ãã³ãŒããæžãç¶ããããããªãã¯ããªãã§ããè² ããã®ã¯ããŒã ã®ååã ãã ã äžæ¹ã§ãç§ãã³ãŒããæžãç¶ããŠããŒã ã®ååã倱ããšããããããã¯éåžžã«æªã管çã®ããã«æããŸãã ããã«ã€ããŠæ·±ãèããããšãã話ããããšããããŸããã§ããããããã§ãé ã®ã©ããã«ãããŸããã ãåè«ã§ããïŒããšããèããé ã®çé ã§ããããåã£ãŠããŸããã ã€ãŸããæ倧ã®åé¡ã¯ç§èªèº«ãšäººã ãšã®é¢ä¿ã§ããã ä»ã§ã¯èªåèªèº«ã®ããšãããããç解ã§ããŸãããç§ã¯é·ãéããã°ã©ããŒã®ããŒã ãªãŒããŒãåããŠããŸããããä»ã§ã¯äººã ã«çŽæ¥ããèšããŸããããåç¥ã®ãšãããç§ã¯ç§ã§ãããããªãã¯ç§ã«å¯ŸåŠããªããã°ãªããŸãã - ç§ãç«ã£ãŠããŠã倧äžå€«ã§ããïŒãããïŒ ãããŠåœŒããããã«å¯ŸåŠãå§ãããšãããã¹ãŠãããŸããããŸããã å®éãç§ã¯æªã人ã§ãè¯ã人ã§ããããŸãããæªæãå©å·±çãªé¡æãæã£ãŠããŸãããããã¯ãã ç§ã®æ¬è³ªã§ãããäœãšããããšãšãã«çããŠããå¿ èŠããããŸãã
ã¢ã³ãã«ãŒïŒã€ãæè¿ãå åçãªäººã®èªå·±èªèããœããã¹ãã«å šè¬ã«ã€ããŠèª°ãã話ãå§ããŸããã ããã«ã€ããŠäœãšèšããŸãã?
åŽïŒã¯ãããããç§ã劻ãšã®é¢å©ããåŠãã æŽå¯ãšæèšã§ããã é¢å©ããåŠãã ããšã¯èªåèªèº«ãç解ããããšã§ããã ãã®ããã«ããŠç§ã¯ä»ã®äººã
ãç解ããããã«ãªããŸããã ãã®çžäºäœçšãã©ã®ããã«æ©èœããããç解ããŠãã ããã ããã«ãã£ãŠæ¬¡ã
ãšçºèŠãçãŸããŸããã èªåã誰ãªã®ããèªåãäœã代衚ããŠããã®ããšããèªèããããŸããã ç§ã¯äœãããŠããã®ã§ããããããã®ä»äºã«å€¢äžã«ãªã£ãŠãããã察ç«ãé¿ããŠãããããããã¯ä»ã®äœããããŠãããã®ã©ã¡ããã§ãããã®ã¬ãã«ã®èªå·±èªèã¯ãèªåãã³ã³ãããŒã«ãç¶ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãã®åŸããã¹ãŠãã¯ããã«ç°¡åã«ãªããŸãã ç§èªèº«ã ãã§ãªããä»ã®ããã°ã©ããŒã«ãããã£ãããšã® XNUMX ã€ã¯ãææ
çãªã¹ãã¬ã¹ç¶æ
ã«ãããšãã¯èããèšèªåã§ããªããšããããšã§ãã ããšãã°ãããªãããããŒç¶æ
ã§åº§ã£ãŠã³ãŒãã£ã³ã°ããŠãããšã圌ããããªãã®ãšããã«é§ãå¯ã£ãŠããŠãäœããå£ããã®ã§ããªãã«å¯ŸããŠæ¥µç«¯ãªæªçœ®ãåããããšãã¹ããªãã¯ã«å«ã³å§ããŸãã ãããŠã粟ç¥çãªã¹ãã¬ã¹ç¶æ
ã«ãããããäœãèšããªããªããŸãã ç²åŸããç¥èã«ããããã®ç¬éã«åããŠçãæ®ããæ€éèšç»ã«é²ãããšãã§ãããã®åŸãäœããè¡ãããšãã§ããŸãã ã§ãããããã¹ãŠãã©ã®ããã«æ©èœããããç解ãå§ãããšãããã¯äººçãå€ãã倧ããªåºæ¥äºã«ãªããŸãã
ç§èªèº«ãé©åãªèšèã¯èŠã€ãããŸããã§ããããäžé£ã®åäœãæãåºããŸããã éèŠãªã®ã¯ããã®åå¿ã¯èšèã§ããã®ãšåãããã身äœçãªãã®ã§ãããã¹ããŒã¹ãå¿
èŠã§ãããšããããšã§ãã çŠ
çãªæå³ã§ãããšããããã空éã ããã¯ãŸãã«èª¬æããå¿
èŠãããããšã§ãããã®åŸãããã«èãžãçŽç²ã«ç©ççã«é¢ããŠãã ããã èšèã§æ²é»ããŠãããšãææ
çã«ç¶æ³ãåŠçã§ããŸãã ã¢ãã¬ããªã³ãè³ã«å°éããæŠéã¢ãŒããŸãã¯éèµ°ã¢ãŒãã«åãæ¿ãããšãããªãã¯ããäœãèšããªããªããŸããããããä»ã§ã¯ããªãã¯æãè
ããã¡æã¡ã®ãšã³ãžãã¢ã§ããããŸãšããªåå¿ãæ»æãæ¢ããããšããã§ãããæ»æè
ã¯èªç±ã«ãªããŸãäœåºŠãäœåºŠãæ»æããããšã ãŸãèªåèªèº«ã«æ»ããã³ã³ãããŒã«ãåãæ»ãããæŠããéããããã¢ãŒãããæãåºãå¿
èŠããããŸãã
ãããŠãã®ããã«ã¯èšèªç©ºéãå¿ èŠã§ãã ãã ã®ç©ºãã¹ããŒã¹ã å°ãã§ãäœããèšããªãããã®ããšãæ£ç¢ºã«èšã£ãŠãããå®éã«èªåã®ããã®ãã¹ããŒã¹ããèŠã€ããŠãã ãããå ¬åãæ£æ©ããããã·ã£ã¯ãŒã«éãããã£ããããŠãã ãããããã¯åé¡ã§ã¯ãããŸããã éèŠãªã®ã¯ããã®ç¶æ³ããäžæçã«åãé¢ãããšã§ãã å°ãªããšãæ°ç§éã¹ã€ãããåããšããã«å¶åŸ¡ãæ»ããå·éã«èãå§ããŸãã ãããã£ããç§ã¯ãã«ãããªããããã«ãªããšã¯ããªãããããªã圹ã«ç«ã€äººéã ããã èªåèªèº«ãçŽåŸãããããšãã§ãããã次ã®æ®µéãã€ãŸãäœãèµ·ãã£ãã®ããç解ãã段éã«é²ã¿ãŸãã ããªãã¯æ»æãããŸããããã®æ»æã¯äºæãã¬ãšããããæ¥ãŸãããããã¯äžèª å®ã§åå£ãªåŸ ã¡äŒãã§ããã ããã¯æªãã§ãã 次ã®ã¹ãããã¯ãæ»æè ããªããããå¿ èŠãšããã®ããç解ããããšã§ãã ã»ããšã«ïŒãªãã§ïŒ ãããã圌èªèº«ãæ¿æããŠããããã§ããããïŒ ãªã圌ã¯æã£ãŠããã®ã§ããïŒ ããšãã°ãèªåã倱æããŠè²¬ä»»ããšããªãããïŒ ãããç¶æ³å šäœãæ éã«åŠçããæ¹æ³ã§ãã ããããããã«ã¯æäœã®äœå°ãã€ãŸãèšèã®ã¹ããŒã¹ãå¿ èŠã§ãã äžçªæåã®ã¹ãããã¯ãå£é ã§ã®æ¥è§Šãæã€ããšã§ãã èšèã«ããè°è«ã¯é¿ããŠãã ããã ãã£ã³ã»ã«ããŠãã§ããã ãæ©ãç«ã¡å»ã£ãŠãã ããã é»è©±ã§ã®äŒè©±ã®å Žåã¯ããã åããŸããããããã¯ç§ãå 劻ãšã®ã³ãã¥ãã±ãŒã·ã§ã³ããåŠãã ã¹ãã«ã§ãã äŒè©±ãããŸãé²ãŸãªãå Žåã¯ããããããªãããšèšã£ãŠé»è©±ãåããŸãããã é»è©±ã®åãããããäœãšãäœãšãããšèšããšãããªãã¯ãã¯ããããããªãïŒããšçããŸãã ãããŠé»è©±ãåããŸãã äŒè©±ãçµäºããã ãã§ãã XNUMXååŸãçæ§çã«èããèœåãæ»ããå°ãå·éã«ãªããäœãèµ·ãã£ãã®ãããããŠæ¬¡ã«äœãèµ·ããã®ãããã¹ãŠã«ã€ããŠèããããšãã§ããããã«ãªããŸãã ãããŠããã ææ çã«åå¿ããã®ã§ã¯ãªããææ ®æ·±ã察å¿ãç·Žãå§ããŸãããã ç§ã«ãšã£ãŠãèªå·±èªèã®ç»æçãªé²æ©ã¯ããŸãã«ãææ çãªã¹ãã¬ã¹ããããšè©±ãããšãã§ããªããªããšããäºå®ã§ããã ãã®ç¶æ ããæãåºããã©ã®ããã«å¯Ÿå¿ããåé¡ãè£ãããèããèšç»ããããšã¯ã話ãããšãã§ããªãå Žåã®æ£ããæé ã§ãã æãç°¡åãªæ¹æ³ã¯ãææ çãªã¹ãã¬ã¹ãçŸããç¶æ³ããéããŠããã®ã¹ãã¬ã¹ã«åå ããã®ããããããšã§ãã ãã®åŸã¯èããããšãã§ããããã«ãªããèããããšãã§ããããã«ãªããšè©±ããããã«ãªãããšããããã«ãªããŸãã
ã¡ãªã¿ã«ãæ³å»·ã§çžææ¹ã®åŒè·å£«ãããªãã«åãããšãããããšããŸããããã®çç±ã¯æããã§ãã ãªããªãã圌ã¯ããªãããäŸãã°èªåã®ååããçºé³ã§ããªããããªç¶æ ã«ãŸã§æå§ããèœåãæã£ãŠããããã§ãã æ¬åœã®æå³ã§ã話ãããšãã§ããªããªããŸãã ãã®ãããªããšãããªãã«èµ·ãããæ³å»·ã®ãããªå Žæã§æ¿ããå£è«ãç¹°ãåºããããããšãåãã£ãŠããã®ã§ããã°ãåŒè·å£«ãšäžç·ã«æ¥ãŠãã ããã åŒè·å£«ãããªãã«ä»£ãã£ãŠèšèã«ããæ»æãæ¢ããå®å šã«åæ³çãªæ¹æ³ã§æ¢ããŠã倱ãããçŠ ã®ç©ºéãããªãã«æ»ã£ãŠããŸãã ããšãã°ãç§ã¯å®¶æã«äœåºŠãé»è©±ããªããã°ãªããŸããã§ããããè£å€å®ã¯ãã®ä»¶ã«é¢ããŠéåžžã«å奜çã«å¯Ÿå¿ããŠãããŸããããçžææ¹ã®åŒè·å£«ã¯ç§ã«æ鳎ã£ãŠæ鳎ã£ããããç§ã¯äžèšãèãåãããšãã§ããŸããã§ããã ãã®ãããªå Žåã仲ä»è ã䜿çšããã®ãç§ã«ãšã£ãŠæãå¹æçã§ãã 調åè ã¯ã絶ããããªãã«éã泚ããã®ãã¹ãŠã®ãã¬ãã·ã£ãŒãæ¢ããããªãã¯å¿ èŠãªçŠ ã®ç©ºéãèŠã€ãããããšãšãã«è©±ãèœåãåãæ»ããŸãã ããã¯ç¥èã®åéå šäœã§ãããåŠã¶ã¹ãããšãèªåèªèº«ã®äžã§çºèŠãã¹ãããšããããããããããããã¹ãŠã人ã«ãã£ãŠç°ãªãé«ã¬ãã«ã®æŠç¥ç決å®ã«å€ãããŸãã äžèšã®åé¡ãæ±ããŠããªã人ãããŸãããéåžžãããã®å¶æ¥ãã³ã«ã¯ãããã®åé¡ã¯ãããŸããã æåãªææã詩人ãå®ææå°è ãæ¿æ²»å®¶ãªã©ãèšèã§çèšãç«ãŠãŠãã人ã ã¯çãåžžã«èšãããããšãæã£ãŠããŸãã 圌ãã«ã¯ãã®ãããªåé¡ã¯ãããŸããããç§ã«ã¯åé¡ããããŸãã
ã¢ã³ãã«ãŒïŒããã¯âŠäºæ³å€ã§ããã ããããŸããããã§ã«ãããã話ããŸãããããã®ã€ã³ã¿ãã¥ãŒãçµäºããæéã«ãªããŸããã ç§ãã¡ã¯å¿ ãäŒè°ã§ãäŒããããã®å¯Ÿè©±ãç¶ããããšãã§ããã§ãããã ããã©ã§ãäŒãããŸãããïŒ
2019 幎 11 æ 12 ïœ 2019 æ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ããã Hydra XNUMX ã«ã³ãã¡ã¬ã³ã¹ã§ãã¯ãªããšã®äŒè©±ãç¶ããããšãã§ããŸãã 圌ã¯å ±åæžãæã£ãŠæ¥ãã§ããã
ãAzul ããŒããŠã§ã¢ ãã©ã³ã¶ã¯ã·ã§ã³ ã¡ã¢ãª ãšã¯ã¹ããªãšã³ã¹ã ã ãã±ããã¯è³Œå ¥ã§ããŸãå ¬åŒãŠã§ããµã€ãäžã§ .
åºæïŒ habr.com