ææ¥ããå§ãŸãJavaäŒè°
Joker 2015ãèŠè¶ããŠãäžçã§æãã¯ãŒã«ã§æåãªããã©ãŒãã³ã¹ã¹ãã·ã£ãªã¹ãã®1人ã§ããOracleã®Javaããã©ãŒãã³ã¹ããŒã ã®ãšã³ãžãã¢ã§ãã
Alexei Shipilevãšã®å€§èŠæš¡ãªã€ã³ã¿ãã¥ãŒãå
¬éããŸãã ãããŠãã¡ãããçŽ æŽãããã¹ããŒã«ãŒã§ãã
ã¢ã¬ã¯ã»ã€ãšè©³çŽ°ã«è©±ããŸããã
- Stringã¯ã©ã¹ã®ä»åŸã®å€æŽã
- å®éã«èª°ããªãŒãã³ãœãŒã¹ãéçºãããã«ã€ããŠã
- ã·ã¹ãã éçºè
ãšãã®ãã£ãªã¢ã«ã€ããŠã
- æè¡äº€æããç§åŠãããã³ã補åãéçºã«ã€ããŠã
- äœã¬ãã«ã®ã¿ã¹ã¯ã®è€éãã«ã€ããŠã
- Javaã³ãã¥ããã£ã®éçºãšãã³ãããŒã¯æŠäºã«ã€ããŠã
- å¯å€å¯Ÿäžå€ã«ã€ããŠ
- å®å
šã§ãªãã«ã€ããŠ;
- JMHããã³ãããŒã¯ãããã³çãå°éåéã«ã€ããŠã
ãããç§ãã¡ã®äŒè©±ã®ãããªã§ãã 1æé以äžãéè·¯ã§èãããšãã§ããŸãã
ã«ããã·ãŒã³ã®äžã«ããã®ã¯ããããªãæ¬åœã«å¥œãã§ã¯ãªã人ã®ããã®äŒè©±ã®æžãèµ·ããã§ãã
æååã®å€æŽã«ã€ããŠ
-ã¢ã¬ã¯ã»ã€ãããã©ãŒãã³ã¹ã«ã€ããŠãã話ããŠããŸããããæè¿ã¯ã¹ããªã³ã°ã¯ã©ã¹ããããããã£ãŠããŸãã ãã®çç±ã¯äœã§ããïŒ-æååã®æé©åãç®çãšãããããžã§ã¯ãã«åå ããŠãããããããã©ãŒãã³ã¹ã®èŠ³ç¹ããæååã«ã€ããŠã説æããŸãã ãã®é åã«ã¯æ¯æ¥å€ãã®å°ããªæé©åããããŸããã2ã€ã®å€§ããªå€æŽãè¡ã£ãŠããŸãã
1ã€ç®ã¯
Compact Stringsã§ãã Javaã¢ããªã±ãŒã·ã§ã³ã«ããã»ãšãã©ã®æååã®ã·ã³ãã«ã¯ãã»ãšãã©ASCIIã«é©åããŸãã ããã¯ãæååã®åæåã«å¯ŸããŠãcharä»æ§ã§èŠæ±ãããŠããããã«ã2ãã€ãã§ã¯ãªã1ãã€ãã䜿çšã§ããããšãæå³ããŸãã çŸåšãã¹ããªã³ã°å
ãã¹ãã¬ãŒãžå
ã¯æåé
åã§ãã é«åºŠã«æé©åãããŠããã人ã
ã¯é«ãããã©ãŒãã³ã¹ãæåŸ
ããŠããŸãã ãããã£ãŠããããã®è¡ãå§çž®ããã«ã¯ããã®Stringã®2ã€ã®è¡šçŸãäœæããå¿
èŠããããŸãã1ã€ã®è¡šçŸã¯å
žåçãªcharé
åã§ã2çªç®ã®è¡šçŸã¯ãã€ãé
åã§ããåãã€ãã¯ç¹å®ã®æåã«å¯Ÿå¿ããŸãã ãããŠããªãªãŒã¹åºæºã§æžããããã«ããéååž°ããæäŸããå€ãã®ããã©ãŒãã³ã¹äœæ¥ãå¿
èŠã§ãã ãã®ãããJava 8ããJava 9ã«åãæ¿ãããŠãŒã¶ãŒã¯çã¿ãæããã ãã§ãªãããã®æ©èœã®å¹žçŠæãšããã©ãŒãã³ã¹ã®åäžãäœéšã§ããŸãã
ãŸãããã©ã€ãã©ãªããã©ã®ããã«æ©èœããããæååé£çµã§äœãã©ã®ããã«è¡ãããã©ã³ã¿ã€ã ããã®å
šäœãã©ã®ããã«åŠçãããã«ã€ããŠãããŸããŸãªæåçãªãã®ããããŸãã äžè¬çã«ãå€ãã®å°ããªè©³çŽ°ããããŸãã
-ãããŠããŸã£ãã銬鹿ã§ã¯ãªãïŒ æååã¯ã©ã¹-JDKå
šäœãééããŸã-ãã«ïŒ å®éãã¯ã©ã¹ã©ã€ãã©ãªããŒã ã®ã¡ã³ããŒããã®å
ã®ææ¡ã«ã¯ãé¢çœãã³ã¡ã³ããããã€ãããããšãããããŸãã 1ã€ã¯ãJSR-166ã¡ã³ãããŒã®1人ãšããŠç¥ãããŠããGoogleã®Martin Buchholzããã§ãã ããŒãã£ã³ã¯ãã€ãŠãããã¯é£ããä»äºã ã幞éã ïŒããšèšã£ãŠããŸããã 2çªç®ã®ã³ã¡ã³ãã¯ç§ããã®ãã®ã§ãã粟ç¥ã®ãªãã®äœãã§ããããŸããæªéã¯ç¥ã£ãŠããã®ã§ããããã§ãããšã¯ä¿¡ããŠããŸãããæååã¯ãã®ãããªã¯ã©ã¹ã§ãã 圌ã«è§Šããã®ã¯æ¬åœã«å±éºã§ããã
ä»ãç§ãã¡ã¯ãã®å€æŽãæ£ç¢ºãªæž¬å®ãæ
éã«ãããã¿ã€ãã³ã°ãããããããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ããããç解ããé©åãªã³ãŒãçææŠç¥ãéžæããã®ã«6ãæãè²»ãããŸãã...ãã®ãã¹ãŠã®äœæ¥ã®åŸã ãã¹ãŠã®é·æãšçæãç¥ãããšã¯å©ãã«ãªããããã§ãã¹ãŠãããŸããããŸãã
-ãããŠãã³ãŒãã®ããã©ãŒãã³ã¹ãå éããããã«ãæååã«ããcharé
åã«å€§èã«ç»ã£ã人ãã¡ã¯ä»ã©ããªããŸããïŒ-é©ããåŸ
ã£ãŠããŸãã ä»æ§äžãcharé
åãæååå
ã«ããããšãä¿èšŒãã人ã¯ããŸããã ããçš®ã®ããã©ãŒãã³ã¹ãåã¡åãããã«åæ°ãåºãã人ã¯ãæåã¯ãã¹ãŠã®å€åã«è¿œéããªããã°ãªããªããšããäºå®ã«ãã§ã«å å
¥ããŠãããšæããŸãã
-ãããŠããããã©ãŒãã³ã¹ã®äœäžãªãããšã¯äœã§ããïŒ ãã¹ãã®ã»ããã¯ãããŸããããããè©äŸ¡ããããã®åºæºã¯ãããŸããïŒ-ããã«ã¯æ£åŒã§éå
¬åŒã®æ
床ããããŸãã éå
¬åŒã®æ
床ã¯ãã¡ãžã£ãŒãªãªãŒã¹ãå°ãªããšãæåŸã®ã¡ãžã£ãŒãªãªãŒã¹ãšåããããé
ãæ©èœãããšããäºå®ã«æ
£ããŠãã倧ããªã³ãã¥ããã£ããããšããããšã§ãã ããããªããšåé¡ãçºçãããããæ°ããããŒãžã§ã³ãžã®ç§»è¡æ¹æ³ã ãããã£ãŠãæ°ããæ©èœãéçºãããšãã¯ãããã©ãŒãã³ã¹ã«å€±æããã ãã§ãªããã©ããã§åã€å¿
èŠãããããšãèŠããŠããŸãã
ãããŠããã®ãããªã¯ãŒã¯ããŒãã§éåžžã«å€ãã®å²åã§ããã©ãŒãã³ã¹ã浪費ã§ãããã©ããã瀺ãæ£åŒãªåºæºããããŸãã ããããããã¯éçºããŒã ã®å
éšåé¡ã§ãããOpenJDKã§ã¯ãããŸããã ããããæ
床ã¯ããã ãã§ã-ç§ãã¡ã¯ãã³ãã¥ããã£ãJavaãéè¡ããªãããšãæãã§ããããšãç解ããŠããŸãã ãŸããJavaãéè¡ããªãããã«ããŸãã ãã®æé»ã®ä»®å®ã«åºã¥ããŠãéçºãè¡ãããŸãã
-åç·äžã®åç·ãåç·ãé§åããããšã³ã¿ãŒãã©ã€ãºãµãŒããŒã®è£œé å
ãšãäœããã®åœ¢ã§å€§èŠæš¡ãªãã³ããŒãšéä¿¡ããŸããïŒ-ãšãŠãç°¡åã§ãã ç§ãã¡ã¯å€§äŒæ¥ã§åããŠãããå
éšé¡§å®¢ãããããããŸãã ãããŠã圌ãã¯ååã§ãã ãªãŒãã³ãœãŒã¹ã¯ãããã«ãŒæ奜家ã«ãã£ãŠç¬èªã«éçºããã空äžã«æµ®éããŠããããã§ã...
éåžžã¯ãã®éã§ãã ããã€ãã®å
éšçãªçç±ã§éçºã«è³éãæäŸããŠãã倧äŒæ¥ãããŸãã OracleãJavaãSunãã賌å
¥ããéçºã«æè³ãå§ããã®ã¯ãªãã§ããïŒ
å®éããã©ãããã©ãŒã ã«æè³ãããšãéçºçµç¹ã«å€§ããªããŒãã¹ãäžããããŸãã ããã©ãŒãã³ã¹ã®åé¡ããã補åããããå®è¡æã«ããŒã«ã©ã€ãºãããŠããããšãããã£ãŠããå Žåã¯ãéçºè
ã®ãšããã«æ¥ãŠæ¬¡ã®ããã«èšãããšãã§ããŸãã ããã«ä¿®æ£ããŠãã ãããã éçºè
ã¯ããã®ããã«çµŠæãæ¯æãããŠããããšãç解ããä¿®çã«è¡ããŸãã
ã·ã¹ãã éçºè
ãšãã®ãã£ãªã¢ã«ã€ããŠ
ãããªãã¯è¶
æåãªç·ã§ããã ãã£ãšããããã®ããããã³ã¿ãŒãLinkedInã§æ¯æ¥ããªãã«æçŽãæžããŠãããªããäžåãããšããŠããŸãã ãªãããªãã¯ãŸã Oracleã«ããã®ã§ããïŒ-ãåç¥ã®ããã«ãç§ã¯é·ãéãã®è³ªåã«èªåèªèº«ã§çããããšããåžžã«ä»ã®äººã«çããããšããŠããŸããã ããã°ãæ¬ãèªãã§ãæ¥çã§è£œåå±€ãã©ã®ããã«é
眮ãããŠããããèŠããšãããŒããŠã§ã¢ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã©ã€ãã©ãªãã¢ããªã±ãŒã·ã§ã³ãªã©ãããããšãããããŸãã ãããŠãããããã¹ãŠã®ã¬ã€ã€ãŒã®éçºè
ã®äººå£ãèŠããšãéãã©ãããã«ãªããŸãã
以äžã¯ãäœã¬ãã«ã®è²¡å£ã«é¢äžããŠãã人ã
ã§ãã ãããŠããããã®äººã
ã¯éåžžã«å°æ°ã§ãã 客芳çãªçç±-å
¥å Žã®ååã«é«ãéŸå€ããããããããã«åççãªäœããããããšãã§ããããã«å€ãã®çµéšãšè¯ãæè²ãå¿
èŠã§ãã
-ã€ãŸããIntelããã»ããµãæ¹åããã«ã¯ã次ã®ãã®ãå¿
èŠã§ã...-ããªãã¯å€ããåŠã¶å¿
èŠããããŸãã ããšãã°ãAndroidã¢ããªã±ãŒã·ã§ã³ãäœæããã ãã§ã¯ãããŸããã åªããã·ã¹ãã ãšã³ãžãã¢ã«ãªãã«ã¯ã5ã10幎ã®ç£æ¥çµéšãå¿
èŠã§ãã æ¢ã«ãã®çµéšãç©ãã§ããå Žåããã®ãšã³ã·ã¹ãã ã§ã®ããªãã®å Žæã¯ãã®äœãã¬ãã«ã«ããããã§ãã ãã¡ããããã®ã¬ãã«ããé²ãã§ãããçš®ã®ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãããããã¯ãããã§ããªãã®é£ã«ãããã¹ãŠã®äººã
ã眮ãæããŠããã¹ãŠãæãäžããŠããããšãæå³ããŸãã 以äžã«å€§å¹
ãªã¹ã¿ããäžè¶³ããããŸãã ããããã®ä»äºããããŸã-ãã æéã ç§ã¯å€ããå°ãªãããç§ãã¡ãã§ããä»äºãšå¿
èŠãªä»äºã®æ¯çãè©äŸ¡ããããšããŠããŸãã ãããŠããã®æ¯çã¯1察10ãããã«ã¯100ã§ãã
-ã€ãŸãã人ã
ã¯æ¬åœã«ååã§ã¯ãããŸãããïŒ-ã¯ããããã¯Javaã®æ©èœã§ã¯ãããŸããã ããã¯ããã®ã·ã¹ãã ã¬ãã«ã®æ©èœã§ãã 人ã¯å°ãªããå€ãã®ä»äºãããã®ã§ãèå³æ·±ãé¢çœãããºã«ããããŸãã ããã«ãããå®è¡ãããã¿ã¹ã¯ãéžæã§ããŸãã ææããŠãã100ã®ã¿ã¹ã¯ããã次ã®ã¿ã¹ã¯ãéžæã§ããŸãã
- aïŒã³ãã¥ããã£ã®å©çã
- bïŒäŒç€Ÿã®å©çã
- cïŒå人çãªå©çã
-äžè¬çã«ãããã¯éåžžã«èå³æ·±ã質åã§ãããéã®è³ªåã§ãã éåžžã人ãå°ãªãã»ã©ã圌ãã¯ããé«äŸ¡ã§ãã ç§ã®æ¥çã§ã¯ãã©ããããããããã¯ãã¹ãŠç°ãªã£ãŠé
眮ãããŠãããšæããŠããŸãã ã ããïŒ-ããããã·ã¹ãã ãšã³ãžãã¢ã¯é«äŸ¡ã§ãã åªç§ãªã·ã¹ãã ãšã³ãžãã¢ã¯éåžžã«é«äŸ¡ã§ãã ãããŠæãéèŠãªã®ã¯ãäŸçµŠãéèŠãããå®è³ªçã«å°ãªãããšã§ãã ãããŠã競äºãèããå°ãªããªããŸãã ã¬ã¬ãŒãžã«åº§ã£ãŠã¹ã¿ãŒãã¢ãããèŠãŠã次ã®ã¬ã¬ãŒãžã®èª°ãããŸã£ããåãã¹ã¿ãŒãã¢ããã®ã¢ã€ãã¢ãæãä»ããªãããã«ç¥ã£ãŠããããªããšã¯ãããŸãã...
ç§ã®å°åã§ã¯ãç§ã®ããžãã¹ã«äŒŒããã®ã«æºãã£ãŠãããã¹ãŠã®äººã1ã€ã®æçŽã«æ°ããããšãã§ããŸãã ãããŠãç¹å¥ãªç«¶äºã¯ãããŸããã ã§ããããåã
JVMLSã®ãããªæ¥œããæ¥çã«ã³ãã¡ã¬ã³ã¹ã¯æ¥œããå
æ¯ã§ãã
ããã°ã©ããã£ãã¯ãã©ãŒã©ã ãèªããšããããšãã°ã蚎èš-ãã©ã®èšèªãåªããŠããããããã©ã®ãã©ãããã©ãŒã ãåªããŠãããããªã©ã ãããŠãããªããJVMLSã«ãããšãããäœã¬ãã«ãã§æ¬åœã«åããŠãã人ã
ã圌ãã®é£ã«åº§ã£ãŠãããšããåæãšçžäºç解ããããŸãã ãã¹ãŠãåãããŒãã«ããããã誰ããé床ã«éè² è·ã«ãªãã誰ããåæ§ã®åé¡ãæ±ããŠããŸã...
ããã¯ãšãŠãçŽ æŽãããå¿ççæ³ã»ãã·ã§ã³ã§ãã ãèžããããšã§å©ããããšã¯ãªãããç§ãã¡ã¯ãããããã£ãããããŠããªãã¯ãã¹ãŠåžãããšãã䞻匵ã¯ãããŸããã ããã§ã¯ãåœç¶ãå人çãªå¥œãå«ããæ³ãšããç解ãšåæããããŸãã
-ãããŠãçŸä»£ã®åŠçãæè¿ã®åæ¥çã¯ã©ãã§ã·ã¹ãã ããã°ã©ãã³ã°ãåŠã¶ããšãã§ããŸããïŒ çŸä»£ã®å€§åŠã§ã¯ã圌ãã¯80幎代ã®æç§æžããã¿ãŒã³ã§æããŠãããšæããŠããŸãã-åºç€ç§åŠã¯åºæ¬çãªãŸãŸã§ãããããããã¯ããã»ã©æªããããŸããã ãããŠãããã¯åžå Žã®ç¶æ³ã«äŸåããŸããã å€å
žçãªæ¬ã倧åŠã®ããã°ã©ã ã§å€å
žçã«ãªã£ãæç§æžããããŸãã ãœããšãããã·ã¢ã®å€§åŠã«ã¯ãªããããããŸããã ã¹ã¿ã³ãã©ãŒã倧åŠãMITã®ããã°ã©ã ãåè¬ããŠã圌ããèªãã æç§æžã«åŸã£ãŠãäœãèªãã§ããããèŠãããšãã§ããŸãã
-ããšãã°ã Computer Science 101 ïŒ-Computer Science 101ã¯éåžžã®å
¥éã³ãŒã¹ã§ãã ãããŠã圌ãã®ããã®å°éçãªã³ãŒã¹ãšæç§æžããããŸãã ãªã³ã©ã€ã³ã§ã³ãŒã¹ãèŠãæ¹æ³ããªãå Žåã¯ãæç§æžãèŠã€ããããšãã§ããŸããããã¯éåžžãå€å
žçãªäœåã§ãã ãããŠãããããçŽæ¥åŠã³ãŸãã ãã·ã¢ã§ã¯ããããè¡ãåŠæ ¡ãããªãç¥ã£ãŠããŸãã ããšãã°ãããã·ãã«ã¹ã¯ã§ã¯ããã€ãŠã¢ã«ãããŒã®ãšã«ã·ã§ãããŸã è¡ã£ãŠããåŠæ ¡ãç·šéè
ã®åŠæ ¡ããããŸããã
-çŸåšã®åœ¢åŒã§Excelsiorãšé¢ä¿ããããŸããïŒ-ãšã¯ã»ã«ã·ãªãŒã«ã¯ãååãªå°éç¥èãæã€äººã
ãããããããçãŸãããšæããŸãã 圌ãã¯éå±ããŠããããã®çš®é¡ã®è£œåãäœãããšãã§ããŸã...
ãããŠãæç§æžã®åŸã«ç·Žç¿ãå¿
èŠãªå Žåããã®çš®ã®ããã°ã©ãã³ã°ã«æºãã£ãŠããã»ãšãã©ã®äŒæ¥ã«ã¯ãã€ã³ã¿ãŒã³ããžã¥ãã¢åãã®ãªãŒãã³ãªããžã·ã§ã³ããããŸãã å®éã«ã¯ãæç§æžã«æžãããŠããããšãšå®éã«èµ·ãã£ãŠããããšã®éããæããããšãã§ããŸãã
ãããªããšåããããèµ·ããŸãããïŒã-ã¯ãã åŠçã®é ãIntelã®ããŒã ã§ã€ã³ã¿ãŒã³ãååŸããJavaã©ã³ã¿ã€ã ã«åŸäºããŠããŸããã äžæ¹ã§ã¯ã倧åŠã§å匷ããã ã¯ããã¯ã
ããã·ãŒã»ãã¿ãŒãœã³ ã
ã¿ãã³ããŠã ãªã©ã®æ¬ã ããèªã¿ãŸãããä»æ¹ã§ã¯ãæç§æžããã¢ã€ãã¢ã移ãããšããæ¬ç©ã®è£œåãè·å Žã§æã£ãŠããŸããã ãŸãã¯ããããžã§ã¯ããèªãã§ãããã2ãæåã«æç§æžã§èªãã ãã®ã§ããããšãç解ããŠãã ããã ãããçè«ãšå®è·µã§ãã
ããã¯ãããã£ãºããã¯ã·ã¹ãã ããšåŒã°ãããã®ã«äŒŒãŠããŸããåŠçãæåã®3ã€ã®ã³ãŒã¹ã®åºæ¬çãªåºç€ïŒæ°åŠãç©çåŠãã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ïŒãäžãããã®åŸãããããç§åŠç 究æãå·¥æ¥çç£ãã¹ãŒããŒãã€ã¶ãŒã¯å®éã®ç§åŠçãªä»äºãããŸãã
ç§ãã¡ã®æ¥çã§ã¯ãå¹æçãªããŒã«ã¯ã»ãŒåãã§ã-åŠçã¯å€§åŠã§åºç€ãååŸããå®éã«ç¥èã掻çšããããã«çµç¹ã«åå ããå¿
èŠããããŸãã ç§ãç解ããŠããããã«ãYandexãABBYYãSbertehããã®ä»ã®äŒæ¥ã¯ãŸã£ããåãæ¹åã«é²ãã§ããŸãã 圌ãã¯åŠçãé£ããŠè¡ãã圌ããèšç·Žããããšæã£ãŠããŸãã
-åé¡ã¯æ¢ç¥ã§ãã æ¥çã®èµ€åã¯ãåŠè¡æ©é¢ã人å¡ã管çãããããéãæé·ããŠããŸãã æ¥çã®æé·çã¯å¹ŽéçŽ15ïŒ
ã§ãã ãããŠãããã¯ãããããããŸãã-ããã«ãããããããç§ã¯å¿çšãœãããŠã§ã¢ã®æ¥çãšã·ã¹ãã ãœãããŠã§ã¢ã®æ¥çãå
±æããŸãã ã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢æ¥çã®èŠæš¡ã¯ãåžå Žã§èµ·ããŠããããšã«å¿ããŠæ¡å€§ãŸãã¯çž®å°ããŠããŸããç¹å®ã®åéãã¹ã¿ãŒãã¢ããã«æè³ããæè³å®¶ã®æ欲ã§ãã
ãããŠãç§ã®ç¥ãéããããã¯ãã¹ãŠãæ©èœããåºç€ã§ãããããã·ã¹ãã ã¬ãã«ã®ããã°ã©ãã³ã°ã«å¯ŸããéèŠãåžžã«ãããŸãã ãã©ãããã©ãŒã ãäœã人ã¯åžžã«å¿
èŠãªã®ã§ãéèŠã«å€§ããªå€åã¯ãããŸããã
æè¡äº€æããç§åŠãããã³ã補åãéçºã«ã€ããŠ
-ãããŠãJavaã¯ä»ã®èšèªã®ãã¯ãããžãŒãæ©èœãããã³ã¢ã€ãã¢ãç©æ¥µçã«æŽ»çšããŠããŸããïŒ-ã©ã³ã¿ã€ã ãªã©ã®ãã¯ãããžãŒã§ã¯ãéçºã®å€§éšåãã¢ã«ãããŒãŸãã¯ã»ãã¢ã«ãããã¯RïŒDã©ãã§è¡ãããç§åŠçèšäºãããã®ã¢ã€ãã¢ãã©ã®ããã«è©Šããããã«é¢ããæè¡ã¬ããŒããå
¬éããŠããããããtyryããšã¯åŒã³ãŸããã çŠãã/çŠããŠããªããã ã©ã³ã¿ã€ã ãå®è£
ãã人ã
ã¯æ¬¡ã®èšäºãèªã¿ãŸããããããããã¯ç§ãã¡ã«åã£ãŠããŸããäžç·ã«å®è£
ããŠã¿ãŸããããã ç°ãªãèšèªã®ã©ã³ã¿ã€ã ãäœæãã人ã
ã1ã€ã®èšäºãèªãããšã¯æããã§ãã ãã®çš®ã®éçºãè¡ãããäž»ãªåºç€ã¯ãåç§åŠåå·¥æ¥çšåéã®ç 究éçºã§ãã
-ããªãã¯ä»ãã·ã¢ã«ãã®ãããªç 究æãæã£ãŠããŸããïŒ-ãã®ãããªäœæ¥ã«ã¯ãç¬èªã®ã¹ãã«ã»ãããå¿
èŠã§ãã ãã·ã¢ã«æ¬æ å°ã眮ãå®å
šãªç 究宀ã§ã¯ãªãããã®ãããªéçºã«åå ããŠããåã
ã®äººã
ãç¥ããŸããã
æ¥çãè³éæäŸããŠããç 究éçºç 究æã«ã€ããŠè©±ããŠããå Žåãç 究ãšå¿çšå®æœãšã®å¢çç·ã¯éåžžã«äžå®å®ã§ãã å€ãã®å Žåããããã¯åã人ã§ãã
-å€ãã®å·¥åŠçåé¡ã¯æçµçã«ç§åŠè
ã«ãã£ãŠè§£æ±ºãããå€ãã®ç§åŠçåé¡ã¯ãšã³ãžãã¢ã«ãã£ãŠè§£æ±ºãããããšãç¥ãããŠããŸãã å¿çšæ°åŠã§ã¯ãããã¯åžžã«èµ·ãããŸãããOracle Labsã«ã¯ãç§åŠå¿åã§ã補åããåé¢ããŠãœãªã¥ãŒã·ã§ã³ãè©Šã人ãããŸããã ãã®çµæãæè¡ã¬ããŒããŸãã¯èšäºãäœæãããŸãã ãããŠã補åãæ¹åããããšããŠããã®ãããªç§åŠèšäºããã¢ã€ãã¢ãåŒãåºã補åããŒã ããããŸãã åæã«ãéåžžã«å€ãã®å Žåãããã€ãã®æ±ºå®ã補åèªäœã®å
éšã§çãŸãããããèªèããŠã¹ãã£ããŒãéçºããããšããŸãã ããã¯ãã®ãããªå
±çããã»ã¹ã§ãã ããããç 究éçºã倧äŒæ¥ã«ãã£ãŠè³éæäŸãããŠããçç±ã§ãã
-ã€ãŸããäŒæ¥ãããã«æè³ããŠãããšããæãã§ããïŒ-ããã¯ææ
ã§ã¯ãªãããã èŠãŠããã ãã§ãã
ãªãŒãã³ãœãŒã¹ãåãã人ã«ã€ããŠ
-ãªãŒãã³ãœãŒã¹ãç¹ã«Javaã®åé¡ã«å°ãæ»ããŸãã äžæ¹ã§ã¯ããã³ããŒã«ãã£ãŠéçºããã³ç§»åãããŸãã äžæ¹ãOracleã¯ãçµç¹ãšã¯å¥ã«ååšããã³ãã¥ããã£ã§ãã Javaãšã³ã·ã¹ãã ã«ã¯ãåæå®è¡æ§ã倧ãã圱é¿ããDoug LeeãããŸãããOracleã§ã¯æ©èœããŸããã ãšãªã¢ãªãŒããŒãçµç¹å€ã«ããå Žåããã®ç¶æ³ã¯ã©ã®çšåºŠãŠããŒã¯ã§ããïŒ-ãŠããŒã¯ã§ã¯ãããŸããã ããšãã°ã代æ¿ã¢ãŒããã¯ãã£ã®ããŒãã«é¢é£ä»ããããŠãããã®ã¯ãOracleã«ãã£ãŠç©æ¥µçã«éçºãããŠããŸããã ããšãã°ãARM64ã¯äž»ã«Red Hatã«ãã£ãŠèµ·åãããŸããããã¯ãRed Hatããã®ããšã«é¢å¿ãããããã§ãã æ¡ä»¶ä»ãIntelãæ¡ä»¶ä»ãAMDããŸã ååšããã³ãŒããžã§ãã¬ãŒã¿ãŒã®æ¹åã«ãé¢å¿ããããŸãã
ããŸã£ããèŠããŸããïŒã IntelãšAMDã®äººã
ãããªãã®ãšããã«æ¥ãŸããïŒåœŒãã¯ãããã§ããªãã¯ç§ãã¡ã®ææ°ã®ããã»ããµã®ããã®æé©åãããããšèšã£ãŠããŸããïŒã圌ãã¯ãããèšãããšãã§ããŸãããã 圌ãã¯èšããŸãïŒãèŠãŠããã®ããã«å
±åçæããã°ããã£ãšè¯ããªãã ãããããã©ãŒãã³ã¹ããŒã¿ã§ããã ãããŠãã³ã³ãã€ã©ãŒããã®å€æŽãæ¬åœã«æåãããšèšããªããããã¯ãã¹ãŠåãå
¥ããããŸãã
-ãããŠãJavaçµç¹ã®äœããŒã»ã³ãã®äººãäœã¬ãã«ã®ã¿ã¹ã¯ã«åŸäºããŠããŸããïŒ-ç§ã¯æ°ããŸããã§ããã 倱瀌ãªå Žåã¯ãJDKã®æŽ»åã®å°ããªåéã§å€ããå°ãªããé »ç¹ã«æ¥è§Šãã人ã¯ããããã50人ãããã ãšæããŸãã ççŽã«èšã£ãŠãä»ã®æ©èœã«é¢äžããŠãã人ã®æ°ã¯ç¥ããŸããã ãã¡ãããã¯ãŒã¯ãã£ãŒããèŠãŠè©äŸ¡ããããšãã§ããŸãããéçºãè¡ã人ã¯å€ãããŸãã
-æ°çŸäººïŒãäœçŸã2ã3ããšæããã
-ããªãã®æèŠã§ã¯ãäœã¬ãã«ã®äœåã¯å€§éšåã®äººã
ã§ããïŒ-ã¯ããçŽ æŽãããã ããã§ãããã®ã¿ã¹ã¯ã¯éåžžã«è€éã§ããããããããã®äººã
ã¯ãŸã ååã§ã¯ãããŸããã
äœã¬ãã«ã®ã¿ã¹ã¯ã®è€éãã«ã€ããŠ
-ãããŠããªãã¿ã¹ã¯ãé£ããã®ã§ããïŒ-äž»ã«ãéåžžã«å€ãã®å¯åéšåãããããã ç¥ã£ãŠããã¹ãããšããããããããŸããããã®ããã«æºåããå¿
èŠããããŸãã ããšãã°ãã³ã³ãã€ã©ãäœæããããã»ããµã®ãšã©ãŒãç¥ãå¿
èŠããããŸãã ãŸããããããååšããããšïŒãããŠå€ãã®äººã«ãšã£ãŠã¯ãããã»ããµã«ãã°ããããšããããšã§ãïŒãç¥ãã«ã¯ããããã®ãã°ã調ã¹ãŠãã³ã³ãã€ã©ãåžžã«éæšæºã®åäœã«çœªããããšã¯éããªãããšãç解ããå¿
èŠããããŸãã ããªããä»ä¿®æ£ããŠãããã°ã¯ãããªããåã®è²¬ä»»ãè² ãéšåãŸã§ã«äœãããéå»ã®ã³ãŒãå€æã®ããçš®ã®å€§ããªå¹²æžã«é¢ä¿ããŠãããããããªãããšãç¥ã£ãŠãå¯èœã«ãªããç解ããã¹ãã§ãã ãã®ã¹ã¿ãã¯ã詳现ã«ç¥ãå¿
èŠããããŸãã
Ranthimeèªäœã¯ãã³ã³ããŒãã³ãã倧ããªã»ã«ã«åé¢ã§ãã補åã§ãããå®éããããã®ã³ã³ããŒãã³ãã¯äºãã«éåžžã«å¯æ¥ã«é¢é£ããŠããŸãã ãã°ãä¿®æ£ãããå Žåãããã¯å€ãã®å Žåãç°ãªãã³ã³ããŒãã³ãã®ãã°ãä¿®æ£ããå¿
èŠãããããšãæå³ããããã©ãŒãã³ã¹ã«åãçµãã§ããå Žåãééããªãåæã«å€æ°ã®ã³ã³ããŒãã³ãã«é¢äžããŸãã
ããã©ãŒãã³ã¹ãããã1ã€ã®ãã¡ã€ã«ã§5è¡ãããå Žåã¯ãåäŸã®é ã¯ããããã§ããããã¯ãããã©ãŒãã³ã¹ã®ãã°ãããå€æŽã§ãããæããã«æ£ãããŠåœ¹ç«ã¡ãŸãã ãããã倧ããªãåªããããã©ãŒãã³ã¹ã®å€æŽã«ã¯ãéåžžã倧ããªè£œåå
šäœã®å°ããªå Žæãã¹ãŠã®å€æŽãå¿
èŠã§ãã ãããã£ãŠããã®è£œåãç¥ã£ãŠããå¿
èŠãããã補åã¯å·šå€§ã§ãã
-ããã¯ãèšèšãäžååã§ããããšãæå³ããŸããïŒ-ãããã
ããªããããªããšãèµ·ããã®ã§ããïŒã å±ææ§ã¯ãåªããèšèšã®åºæºã®1ã€ã§ãããšèããããŠããŸããåé¡ãæé€ããããã«ã10ãæã§ã¯ãªã1ãæã§æããããšèããŠããŸãããããã¯ãã¹ãŠçŽã®äžã§ããŸãæ©èœããŸããã å®éã«ã¯ã次ã®2ã€ã®ããšãèµ·ãããŸãããŸããããã©ãŒãã³ã¹ãè¿œæ±ãå§ãããšãæœè±¡åãããã€ãã®å¥ã
ã®å Žæã§è¡ãããããšãå¿
èŠã§ããããšãããããŸãã 次ã«ããã°ãçºçããŸãã
ãã©ãããã©ãŒã ã«ã€ããŠããã©ãããã©ãŒã ãã©ã®ããã«åäœããããããšãã°ã移åããšèšã£ããšãã«ããã»ããµãã¬ãžã¹ã¿ããã¬ãžã¹ã¿ãžæ£ç¢ºã«éä¿¡ããããšã«ã€ããŠç¥ã£ãŠããŸãã ãã®ä»®å®ã«é Œãã°ãçŸããã³ã³ãã€ã©ãæžãããšãã§ããŸãããçªç¶ãããã»ããµã«ãšã©ãŒãããããšãããããŸãã ãããä¿®æ£ããã«ã¯ã©ãããŸããïŒ æŸèæãã³ãŒããžã§ãã¬ãŒã¿ãŒã«æ¿å
¥ããŸãã ããã¯å®éçãªåé¡ã«å¯Ÿããå®éçãªè§£æ±ºçã ããã§ãã
-ã¯ã©ã€ã¢ã³ãã«ãã¡ãŒã ãããããã¡ãŒã ã«1000åã®ããã»ããµãç ŽæããŠããå Žå...-HotSpot JVMã®ãœãŒã¹ãèªããšãããã«ããŸããŸãªææããããŸããæãéèŠãªããšã¯ããããã®ææã®å€ãã眲åãããŠããããšã§ãã ããšãã°ãããã®ã³ãŒãã¯ãã§ãããäœããã®çç±ã§writtenãããšãã粟ç¥ã§ã³ã¡ã³ãã«åºãããããšããããŸãã
-ãããŠããã®èŠåã¯äžè¬çã«å®ãããŠããŸããïŒ-éåžžã¯å°éãããŸãã ãã®ãããªãã°ãä¿®æ£ãããšããããªããå®éã«ãã®ãããªã€ãšãºã¹äŒã®ããšãããçç±ãæžãããšãæåŸ
ãããŸãã
ãããŠããã®ãããªå Žæã§ã¯ãéåžžã次ã®ãããªãã®ãæžãããŠããŸãã ãããããã®å Žæã§ã®å€æã«ããããã®ãããªã°ã©ããäœæããããããããã§ã¯å¥ã®æ¹æ³ã§èšè¿°ããããšã¯ã§ããŸããã äžè¬ã«ããã®ãªã³ã¯ãããã°ãèªã¿ãèªãã§ãã ãããããã«ã¯ããªããã®ããšãããŸãæ©èœããªãã®ãã«ã€ããŠã®15ããŒãžã®åäºè©©ããããŸãã ããã¯éåžžã«å°ããªè©³çŽ°ã§ãã
ããŒããŠã§ã¢ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãª
-ãšã©ãŒã¿ãšããã»ããµã«æ»ãã HerlichãšShavitã®å€å
žçãªæ¬ã«ã¯ãããŒããŠã§ã¢ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã«é¢ããå¥ã®ç« ããããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãšã¯äœããããå°ãæããŠãã ããã-ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã®åçæ§ã¯ãã¡ã¢ãªå
ã®ããã€ãã®å Žæã§èª¿æŽãããå€æŽãè¡ãå¿
èŠãããå Žåã«åæã®åé¡ãããããšã§ãã ã¡ã¢ãªãŒã®1ã€ã®å Žæã§ã¢ãããã¯ãªå€æŽãè¡ãå¿
èŠãããå Žåã¯ãã¢ãããã¯æäœãè¡ãã ãã§ãã
å¥ã®ããšã¯ãããã€ãã®èªã¿åããè€æ°ã®ã¬ã³ãŒããäœæããäœããã®èªæã§ãªãå€æãè¡ãå¿
èŠãããå Žåããã®ãããã¯å
šäœãã¢ãããã¯ã«ããå¿
èŠãããããšã§ãã ãããã§ããã¯ãååŸããã«ãŒãããã®äžã§ãã¹ãŠãè¡ããããã¯ã解é€ããŸããããšããã¯ãäœæã§ããŸããããã¯æ©èœçãªèŠ³ç¹ããæ©èœããŸãã
å¥ã®ããšã¯ããããã®ããã¯ãäœã«ãªãã®ããšããããšã§ãã 競åïŒ ãããã£ãŠãããã©ã³ã¶ã¯ã·ã§ã³ã®éå§æã«ãç§ãã¡ãæã£ãŠãããã®ãèŠããŠãããŠãã«ãŒãããã®äžã§ãã·ã³ã®ç¶æ
ã§äœããè¡ãããã©ã³ã¶ã¯ã·ã§ã³ãã³ããããããšããã®ãã·ã³ã®ãã¹ãŠã®ç¶æ
ãä»ã®å
šå¡ã«ã¢ãããã¯ã«è¡šç€ºãããããšããããŒããŠã§ã¢ã¡ã«ããºã ãååŸããããã ããã¯ãã¹ãŠãã©ã³ã¶ã¯ã·ã§ã³ã§ãã ç§ã¯åã
ã®èšé²ã枬å®å€ãæã£ãŠããã ãã§ãªãããã®ç¶æ
ãããã«å
¬éãããããŸã£ããå
¬éããªããã©ã³ã¶ã¯ã·ã§ã³å
šäœãæã£ãŠããŸãã
-ããã¯ããªã³ã¯ãå€æŽããCASã«äŒŒãŠããŸãã-ã¯ããCASã§å®è¡ã§ããŸãããããã§åé¡ãçºçããŸã-CASããŒã¹ã®ã©ãããŒãããã§å®è¡ããå¿
èŠããããŸããããã§ã¯ããã¢ã¡ã¢ãªã䜿çšãããã®ããã«å®è¡ã§ããŸãã
-ãããŠãã©ãããŒã¯ãå²ãåœãŠãã¡ã¢ãªãã©ãã£ãã¯ã䌎ããŸã...-ã¯ãã HTMã¯ãã©ããã³ã°ãªããžã§ã¯ããäžå¿
èŠã«äœæããããšãªããããããã¹ãŠãåé¿ããã®ã«åœ¹ç«ã¡ãŸãã ãä»ããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã¡ã¢ãªå
ã«10ã®ã¹ããŒãªãŒãäœæãããã©ã³ã¶ã¯ã·ã§ã³ãã³ããããããããã®10ã®ã¹ããŒãªãŒããã¹ãŠè¡šç€ºãããã衚瀺ããªãããã«ããŠããŸãããšèšãããšãã§ããŸãã
-ããŒã¿ããŒã¹ã¯ã©ãã§ããïŒ-ã¯ãã ãããã£ãŠããã®ãããªã¡ã¢ãªã¯ãã©ã³ã¶ã¯ã·ã§ã³ã§ããããããã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãšåŒã°ããŸãã ãã ãããã®ããã«ã¯ããŒããŠã§ã¢ãµããŒããå¿
èŠã§ãã ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã®ãœãããŠã§ã¢å®è£
ãæ¢ã«ãã£ãããã§ãã
ãœãããŠã§ã¢ã®å®è£
-ãããã¯éåžžã«é
ããããããŒããŠã§ã¢ã®ãµããŒããå¿
èŠã§ãã ããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããããšããã³ãã³ããå®è¡ãããšããã®æç¹ã§ãã·ã³ããOKããã®ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§åŸã«è¡ããããã¹ãŠã®ããšã¯ãŸã 誰ã«ãèŠããªãããã³ãããæã«ãã¹ãŠãå
¬éããããšèšãããšãããŒããŠã©ãŒã«èª¬æããå¿
èŠããããŸãã
-ããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããããªã©ã®æ瀺ãããã®ã¯ãã¢ã»ã³ãã©ãŒã³ãŒãã«æ£ããã§ããïŒ-xstartã 次ã«ãxcommitãšèšããšãããŒããŠã©ãŒã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããã«æåããã倱æããããéç¥ããŸãã xabortã ãã¹ãŠãå®ç§ã§ãã 誰ããããŒããã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã衚瀺ãããã®ãåŸ
ã£ãŠããŸããã Azulã¯é·ãé
Vegaã§ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãäœæããŠããŸãããã圌ãã¯èšãããã«ãJavaã§ãã®HTM hadhã¡ã¢ãªã掻çšããããšã§æåãåããŸããã
-ä»ã ããã¬ãæ»ãã ã-ãã¬ã¯æ»ãã ãã®ã§ã¯ãããŸããã CTO Azul Systemsã®
Gil Teneæ°ã¯ãx86_64ã®ããã©ãŒãã³ã¹ç¹æ§ãVegaã«éåžžã«è¿ããªããVegaããµããŒãããããšã¯çµæžçã«äžæ¡ç®ã«ãªããšè¿°ã¹ãŸããã
-ã¯ããéã®ãµããŒãã¯é«äŸ¡ã§ãã-ã¯ãããªãã§ããïŒ å·¥å Žãæã£ãŠããããã¹ãŠãå°é¡ã§è²©å£²ããŠããããŒããŠã§ã¢ãã³ããŒãããå Žåã èªç€Ÿã®ãã€ã¯ãããã»ããµã®çç£ã³ã¹ããšæ¯èŒãããšããããã¯åãªããããŒã§ãã
ãããŠã誰ãã幞ãã§ãèªåã®å°ããªãããã¿ã€ããäœãå§ããŸããã ç§ãã¡ãã Javaã§HTMã䜿çšã§ããèªç¶ãªå Žæã¯ãããšãã°2ã3ã4ã®åºèãããåæåãããäºçŽ°ãªãããã¯ãããå Žåã§ãã å
¥åã§ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããåºåã§ã¯çç¥ããŸãã ã»ãã³ãã£ã¯ã¹ã¯ãŸã£ããåãã§ãã
-ã€ãŸããJITã¯çªç¶ãä»ã§ã¯ããã¯ã䜿çšããããã®ãããªcãªãã©ã³ã¶ã¯ã·ã§ã³åœä»€ã䜿çšããŠãããšèšããŸããïŒ-ãããŠãããã¯ã»ãŒ8ã§ãè¡ãããŸããã ããããçªç¶ãéããã®ãã«ãã®ããã«ãäžéšã®ç·ãHaswellã®ãã®éåžžã«HTMã®ããŒããŠã§ã¢å®è£
ã«ãã°ãçºèŠããããšãå€æããŸããã ãããŠãç§ãç解ããŠããããã«ããã®ãã°ã¯ãã§ã«ã·ãªã³ã³ã«ãã£ãã®ã§ãä¿®æ£ããããšã¯ã§ããŸããã
-ããã¯ãã·ã§ã ã«æ²ç·ã§ããïŒ-ã¯ãã ãã®ãããIntelã¯çã«è¬çœªããHTMããªãã«ãªã£ãŠãããã€ã¯ãã³ãŒãã¢ããããŒãããªãªãŒã¹ããŸããã HTMã¯ãªãã·ã§ã³æ©èœã§ãããããã䜿çšããã«ã¯ãããã»ããµãââã©ã°ã確èªããå¿
èŠããããŸãã ããã»ããµãã€ã¯ãã³ãŒãã®ã¢ããããŒãããªãªãŒã¹ã§ããŸããããã«ãããããµããŒãããŠããŸããããšè¡šç€ºãããŸãã ããã¯ããŒããŠã§ã¢ã¡ãŒã«ãŒã®ééãã§ããããã®ãããªããšã¯æã
èµ·ãããŸãã
-Pentium IIIã§ã¯ãããã»ããµã®æåãªãªã³ãŒã«ããããŸããã ã©ããããããã¯10幎ããšã«çºçããŸãã-ç§ã®æèŠã§ã¯ãPentium IIIã§ã¯ãªããPentiumã ãã§ããã ç§ã®ãããªå€ãã®äººã
ãTSXãè©Šãããã«Haswellã賌å
¥ãããšããäºå®ã«ãããããããããããçªç¶ããªãã®ããã»ããµãã«ããã£ã«å€ãã£ãããšãå€æããŸãã...
-æåŸã«ã¹ã³ã¢ãŸãã¯ãã€ã¯ãã¹ã³ã¢ãæŽæ°ããŸãããïŒ-èªåçã«æŽæ°ãããŸãã
ãããã¯ã©ãããŠã§ããïŒã-èµ·åæã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãæŽæ°ããŸãã 圌女ã«ã¯ããã€ã¯ãã³ãŒããå
¥ã£ãŠããç¹å¥ãªããã°ããããŸãã
-ã€ãŸãããã®BIOSãæŽæ°ããå¿
èŠã¯ãããŸãããïŒ-ç§ã¯ãããBIOS / UEFIãä»ããŠè¡ãããããšãç解ããŠããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ããã»ããµã«ããããæ°ãããã€ã¯ãã³ãŒãã§ãããšèšããŸãã
-誰ãããã§ã«ãããæã£ãŠããŸããïŒ-ã¯ããã¡ã¢ãªãæå·ãããã°ããã£ããããããã¯æ©èœã®ç¹ã§éåžžã®æŠç¥ã§ãã é
ããªããŸãããããæ£ç¢ºã§ãã
-Intelã®HTMã«é¢ããå°æ¥ã®èšç»ã¯äœã§ããïŒ-圌ãã¯æ°ãããªããžã§ã³ãæã£ãŠããŸãã ç§ã®æèŠã§ã¯ãã¹ã«ã€ã¬ã€ã¯ãšåŒã°ããŸãã Haswellã¯ããã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã¹ãã¬ãŒãžããµããŒãããããã»ããµããšå®£äŒãããSkylakeã¯ãæçµçã«ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªãæ£ãããµããŒãããããã»ããµããšå®£äŒãããŸããã ä»åã¯ã©ããªããèŠãŠã¿ãŸãããã
Javaã³ãã¥ããã£ã®éçºãšãã³ãããŒã¯æŠäºã«ã€ããŠ
â Sun , , Sun. Oracle , . , Oracle, , Java-. ?â , . Sun, , , , . , - JavaOne, Sun , , Sun , - . , . ?
â 5 .â ?
â 2011 .â Oracle Sun?
â 2009-2010 .â . Oracle, Sun, : «, , . , JDK 7 JDK 7, ».
â , .â , Sun, .
â Intel, Harmony, . . JDK, -.-ã¯ãã OpenJDK 2007 ,
Harmony 2004 2008. , . , JVM.
Oracle, JRockit , . IBM, J9. SAP , JVM. , .
«-». Java , , , . , .
- â - , , . ããã¯æ£åžžã§ãã -, , , , . , HashMap' , . , , , .
, , - , . OpenJDK - . . , - , , . .
â OpenJDK ?â GCC, LLVM . , , . , , , . , , OpenJDK .
. , Sun Oracle. . , , . , - , â . , LinkedIn, Twitter . , , , .
â immutable-. , , GC . immutability ? ?â . , . â . â . , . , ,
. , by construction , , , , - .
, â . , , , , Scala . , , , , â . : « Scala , , , . , . , » â .
Java . Java, - . , , - , Unsafe ⊠â , . , . , . , «». , , , , â .
â , . Java Tech Days 2011 , , . , immutability City Legend , , âŠâ . « â , CAS â ». «Java â , Scala â ». . , - â , , . , , , .
, , , , . , , , , . , , , , . . , , , , .
, , , , 100% . , , , ..
, , â , « , ». ãã , «», «». , â «» «»? . , , «» «». . ( , , ) .
Unsafe
â Unsafe. . ?â , - , , . , - , , «» «». .
, , , , , , , .
, Unsafe . , , . , - unsafe â . Java , .
StackOverflow : «, ! , !». . , Javac , API ⊠«» , , - !
, , Unsafe, - . , JDK. , API , , API , . : « -, ? 8 , , , , , ».
, , . - , , , , . â , . â , , . , , .
â , 2 , . -, , Java . , «Java 8» â , «JDK 8» â . -, , . Sun Oracle, « »?â , « »? javac : «sun.misc.Unsafe is proprietary API and can be removed in future release». Release Notes , , sun.misc. , API, , . Oracle , Unsafe , API. , unsafe , , , unsafe, fallback', unsafe â .
â Unsafe . - , , , , , Hazelcast. , , ⊠, . , â . , âŠâ , . , Hazelcast , Oracle, sun.misc.Unsafe , Joker, : « , unsafe!». , Unsafe . , , - -.
, . , , , , , API, . , . , API , .
â . , , , , . â ⊠, -, - .â , Mechanical Sympathy Unsafe. , : «, . , , API. , -, API, , -, ».
: , ? , API , , API , . API, , - . , API, «» .
JMHããã³ãããŒã¯ããã³ãããŒã¹ãã·ã£ã©ã€ãŒãŒã·ã§ã³ã«ã€ããŠ
-ãããåé¡ã§ãã éå»3幎éã Java Microbenchmark Harness ïŒJMHïŒãç©æ¥µçã«éçºããŠããŸã ã ããªããè¡ãã»ãšãã©ã®ã³ãããã¯ããããã»ãšãã©ããªãã®ãããžã§ã¯ãã§ãããçŸåšã¯OpenJDKã®åŸæŽã®äžã«ãããŸãã ã ããïŒ-ããã¯ãããã©ãŒãã³ã¹ããŒã ããµãŒãã¹ãæäŸãããããžã§ã¯ãã§ãã
ããããŠåœŒã«ã¯1ã€ã®åé¡ããããŸããã ãããã¯ããããéãã§ãã ãããŠãããã蚌æã§ãã-ããã¯èšŒæã§ã¯ãªããåæã¯ããã§çµãããŸããã ãã®åšãã®ã»ãšãã©ã®äººã¯åã«ç解ããŠããªãããã§ãã-JMHã®å Žåãã¹ããŒãªãŒã¯æ¬¡ã®ãšããã§ãã ããªãã¯åžžã«èªåèªèº«ã«è³ªåããå¿
èŠããããŸã-誰ãæ©æµãåããŸãã ããã©ãŒãã³ã¹ããŒã ãJMHãè¡ãã®ã¯ãªãã§ããïŒ åœŒå¥³ã¯ç§ãã¡èªèº«ã®æŽ»åãä¿é²ããããã«ãããè¡ã£ãŠããŸãããªããªããç§ãã¡ã«ã¯å¿
ç¶çã«ãã³ãããŒã¯ã«ã€ãªããç 究ãããããã§ãã ãã®èª¿æ»ãè¡ãã«ã¯ããŒã«ãå¿
èŠã§ãããããã¯ãã¹ãŠããŒã«ã«éå®ãããŸããã å®éšããåŸãããäž»ãªãã®ã¯æ°åã§ã¯ãªãããã§ãã ããªããã§ããäž»ãªããšã¯ãæ°åããç¥èãåŒãåºãããšã§ãã ååãšããŠãå€ããå°ãªããä¿¡é Œã§ããç¥èãæœåºããããã«ã¯ãçè«ã®ã·ã¹ãã ãå¿
èŠã§ããããããã®çè«ã¯ãããã®å®éšã«ãã£ãŠç¢ºèªãããªããã°ãªããŸããã ããã«ã¯æ°ãããã®ã¯äœããããŸãã-ããªãã¯ç§åŠã®å²åŠãåããããã¯ãŸã£ããåãã§ãã
補åã«é¢ããããã©ãŒãã³ã¹ã¯ãèªç¶ã«é¢ããç§åŠè
ã®ãããªãã®ã§ãã é«ã¬ãã«ã®ã¢ãã«ãæ§ç¯ããå®éšãéããŠãããè¡ããŸãã JMHã¯å®éšãè¡ãã®ã«åœ¹ç«ã¡ãŸãããã®ãã¬ãŒãºã®äž»ãªèšèã¯ããã«ããã§ãã ããããããªãã®ããã«å®éšããªãã§ãã ããã æéãç¯çŽããå®éšã®éèªæãªç¹å®ã®ãã®ã«å¯ŸåŠããããã«ããã³ãããŒã¯ã®æãããªçæã«èžã¿èŸŒãŸãªãããã«ããã®ã«åœ¹ç«ã¡ãŸãã ã ãããããã«æžãããšãã§ããŸã[éå§-çŽã èµ€]ãã³ãããŒã¯ããã®ãã³ãããŒã¯ãæ£ããèšè¿°ããæ¹æ³ãç解ããããã«æ®ãã®æéãè²»ãããŸãã ãããŠãäŸãã°ããããã³ãŒãã®é€å»ã§æããªééããä¿®æ£ããããšããŠäœæéãè²»ãããªãã§ãã ããã ãããç®çã§ãã
åå®éšã§è§£æ±ºããå¿
èŠãããå
ã®åé¡ã解決ããã®ã«åœ¹ç«ã¡ãŸãã ç¹å®ã®å®éšã®ç¹å®ã®åé¡ã解決ããå©ãã«ã¯ãªããŸããã åæã¯ããã®ããŒã¿ããã©ã®æŽå¯ãæäŸã§ãããããã®æŽå¯ãä¿¡é Œã§ãããã©ããããã®æŽå¯ãç¥èã®äžè¬çãªã·ã¹ãã ã®ã©ãã«ããããç解ããããã«å¿
èŠã§ãã
ããªããããã°ãæžããšããããªãã¯ããã€ãã®æ©èœã®ãã³ãããŒã¯ãäœæããã®ã§ãç§ãã¡ã¯ãã°ãã°ããã眪ã«ããŸã-ãããŠãç§ãã¡ã¯ç¹ã«ãã®æ©èœã察象ãšããå®éšã瀺ããŸãã å®éããã®å®éšã®èåŸã«ã¯ãããã®ãªã³ã¯ã®ãã§ãŒã³ããŸã ãããŸãã ããšãã°ããã®ããŒãã¹ã¯ãã®ãã·ã³ã§æ£åžžã«åäœããããšããã®ãã·ã³ãèŒæ£ããããšããµãŒãã«ã·ã£ããããŠã³ã«é¥ããªãããšãç¥ã£ãŠããŸãã ãŸãã¯ããã¹ããžã®ãã®ãããªã¢ãããŒããæ©èœããããšãç¥ã£ãŠããŸã-åå¥ã«æ€èšŒããŸããã ååãšããŠãããã¯ããã°ã«æžãããšãã§ããŸãããããã¯ããã°ã§ã¯ãªããä»è¡ã£ãŠããå®éšãä¿¡é Œã§ããããšã確èªããããã«ã以åã«ã©ã®æ®µéã®å®éšãè¡ã£ããã«ã€ããŠã®æ¬å
šäœã«ãªããŸãã ãã³ãããŒã¯ãé
眮ããããã©ã«ãã§ãã³ãããŒã¯ãæ£ãããšä»®å®ããããšã¯ã§ããŸããã ããã¯èµ·ãããŸããã ãã³ãããŒã¯ã¯ãããªããæ¢ã«ç¥ã£ãŠããä»ã®ãã¹ãŠãšçµã³ã€ããŠæŽå¯ãäžããå Žåã«ã®ã¿æ£ããã§ãã
-ä»ãäœãèµ·ãããèŠãŠã¿ãŸããããããã©ãŒãã³ã¹ã«ã€ããŠåŠã¶å¿
èŠããããŸãããç§ã¯ããã§ããŸã倧ããªããã¯ã§ã¯ãããŸããã ããšãã°ãç¹å®ã®åœå±ã«èšåããŸãã ãã³ãããŒã¯ãå®è¡ãã枬å®ããããã©ãŒãã³ã¹ã¢ãã«ãå
·äœçãªæ瀺ã«ã€ããŠã®ä»®èª¬ãç«ãŠãŠããŸãã ã¢ã»ã³ãã©ãŒã®ãªã¹ããååŸããããã«ããã¢ããªã±ãŒã·ã§ã³ãããããã®æ瀺ãèŠã€ããŸãïŒãŸãã¯èŠã€ããŸããïŒã ç§trickã¯æ¬¡ã®ãšããã§ãããã®ã¢ã»ã³ãã©ãŒãªã¹ãã§ã©ã®ãããªåœä»€ãæ¢ãã¹ãããç解ããã«ã¯ãèæ¯ãå¿
èŠã§ãããJMHã䜿çšããã«åãåé¡ã解決ã§ããå¿
èŠããããŸãã ã ããïŒ-ç解ã§ããªãè€éãªãããã¯ã®è³ªåãžã®åçãå¿
èŠãªå Žåã¯ããã®ãããã¯ãç解ããŠãã人ãèŠã€ããŠå°ããå¿
èŠããããŸãã
ç§ã®äŒç€Ÿã¯1ã€ã®ç°¡åãªããšãæããŠãããŸããããšãã°ãæ³ç質åã§æçŽã«çããŠãç§ã¯åŒè·å£«ã§ã¯ãããŸããã...ããšæžãå§ãããããã®æçŽãéããŠé»è©±ãåããå®éã®åŒè·å£«ã«é»è©±ããªããã°ãªããŸããããã®è³ªåã«å¯Ÿããæ£ããçããç¥ã£ãŠãã人ã ããã©ãŒãã³ã¹ãšãŸã£ããåãã¹ããŒãªãŒã ããªãã¯èšãããšãã§ããŸãïŒããã¡ãããç§ã¯ããã©ãŒãã³ã¹ã¢ãŒãã£ã¹ãã§ã¯ãªãããã®ããšã§å€§ããªããã¯ã§ã¯ãããŸããããããã©ãŒãã³ã¹ããŒã¿ã¯ããã瀺ããŠããããã§ããã ãã ããçŸæç¹ã§ã¯ã次ã®2ã€ã®ãããããå®è¡ããå¿
èŠããããŸããããã©ãŒãã³ã¹ã¢ãŒãã£ã¹ãã«ãªãããããã®ããŒã¿ãéåžžã©ããã«è§£éãããããã®åé¡ãç解ããŠãã人ã«æèŠãæ±ããŸãã
ããããããã©ãŒãã³ã¹ã«çå£ã«æè³ããŠãã倧èŠæš¡ãªçµç¹ã«ããã©ãŒãã³ã¹ããŒã ãããçç±ã®1ã€ã§ãã 圌ãã¯ãã®ãããªè³ªåã«çããæ¹æ³ãç¥ã£ãŠãã人ã
ãä¿åããããã§ãã 圌ããéåžžã«è³¢ãããã§ã¯ãªããçµéšãç¥èã®ã·ã¹ãã ãããããã§ãã 圌ãã®ä»äºã¯ããã®äžè¬çãªç¥èã«çæããããšã§ãã ãããŠãç§ã¯ç®ãéããŠããã®ããŒã¿ãèŠãŠã圌ãã¯ç§ã®ä»®å®ã確èªããŸã-ããã¯
確èªãã€ã¢ã¹ã§ãã
ããšãã°ãã©ã¡ãã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãåªããŠãããã¯æšæž¬ããŸããã ç§ã¯ãã®è³ªåã«å¯Ÿããçããç¥ããŸããããªã¬ã³ãžã®ãã¿ã®ããã«ãç§ã¯ãããç解ããŸãã ãã¡ãããç§ã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã䜿çšããŸããããããã«ã¯å€ãã®æçœã§ãªãããšããããŸãã ãããŠããããç
®è©°ããããã§äœãèµ·ãã£ãŠããããç¥ã£ãŠããå°é家ãããã圌ãã¯ã¢ããã€ã¹ãæ±ããããšãã§ããŸãã ãããŠãç§ã«ãšã£ãŠã¯ãäŸãã°ããã°ã«æžãã®ã¯èæ å¿ã®é«ãã«ãªãã§ãããããããããGlassfishã§äœããWeblogicã§äœããç«ã¡äžããŸãããGlassfishã¯ãã®ãããªå®è£
ã§èœã¡ãWeblogicã¯ãã®ãããªå®è£
ã§èœã¡ãŸããã ãããŠããããããWeblogicã®æ¹ãåªããŠããããGlassfishã®æ¹ãåªããŠãããšæããŸããã ãŸãããã¯æãã§ãïŒ
ããã€ãã®æççãªæ
å ±ã«ãããšãç§ã¯çè«çã«ã¯äœå幎ãã®éåŸãã¯ãã®èšå€§ãªç¥èãæšå®ããããšããŠããŸãã ãããã£ãŠãã§ããããšã®æ倧ã¯ãçããå¿
èŠãªåéã®å°é家ã«ãªããããã®åéã®å°é家ã«å°ããããšã§ãã ãã以å€ã¯ãã¹ãŠäžå®å®ãªåå°ã§ãã