![](https://habrastorage.org/files/4fa/333/e18/4fa333e181e346448c5829cc84a0f514.jpg)
Andreyã¯ã·ã¹ãã ããã°ã©ãã³ã°ã®å°é家ã§ãããã¹ãã¬ãŒãžã·ã¹ãã ãšæ å ±è»¢éã·ã¹ãã ã«åŸäºããŠããŸããã 圌ã¯OdnoklassnikiããŒã¿ã«ã®åºç€ãšãªãã¬ã³ã¬ãç©ã¿äžãããµãŒãã¹ã®ä¿¡é Œæ§ãšé床ãæäŸããŸããã
Andreiãšè©±ãããã®ã¯æ¬¡ã®ãšããã§ãã
- Java 7ããJava 8ãžã®ç§»è¡ã¯äœã§ããïŒ
- sun.misc.Unsafeã¯ã©ããªããŸããã
- Odnoklassnikiã¢ãŒããã¯ãã£ã
- ãšã³ãžãã¢ãªã³ã°ã®ãã¬ãŒããªããã·ã£ãŒãã£ã³ã°ãGCã
- ã¹ãã¬ãŒãžã·ã¹ãã ãšCassandra;
- Odnoklassnikiãä»ã®ã©ã®å ãè¡ã£ãŠãããããããŠGoogleããä»ã«äœãåŠã¶ã¹ããã
- ã¯ãŒã«ãªã·ã¹ãã ããã°ã©ãã«ãªãæ¹æ³ã
ïŒéå§ãé ããŠããããšã¯ç¥ã£ãŠããŸããããéãæºãåãããããã¯ãå ¥åããããã«åªåããŸããïŒ
ã€ã³ã¿ãã¥ãŒã®ã«ãããªããã©ã³ã¹ã¯ãªããã®äžã§ãåã³ãããªãèŠãæéããªã人ã®ããã«ã
Java 7ããJava 8ãžã®ç§»è¡ã«ã€ããŠ
-倪éœã®äžã§åããJavaãå åŽããèŠãŠãOdnoklassnikiã«åãæ¿ãããšãã«ãã¯ã©ã€ã¢ã³ãåŽããèŠãŠå§ããŸããã ïŒã¢ããªã±ãŒã·ã§ã³éçºè ãšããŠïŒJava 6ã7ã8ãèŠãããšããããŸããïŒ ããšãã°ãJDK 8ã¯JDK 7ãããæããã«åªãã補åã§ãããšæããŠããŸããïŒ
-ãã¹ãŠã®ããŒãžã§ã³ã«ãã°ãããããã§ã«äœ¿çšãããŠããŸãã JVMãéåžžã«è€éãªã·ã¹ãã ã§ããããšã¯æããã§ãã ãŸããç¹å®ã®ã·ããªãªã§JITã³ã³ãã€ã©ãã©ã®ããã«æ©èœããããäºåã«äºæž¬ããããšããã§ããªãå ŽåããããŸãã æãéèŠãªããšã¯ããã¹ãŠã®äººã®ããã«ããã«åãçµãã§ããããŒã¿ã«ã®99ïŒ ãããã2013幎以éã倧ããªäœäžã¯ãããŸããã§ããã ãããã£ãŠãJavaã«æºè¶³ããŠããŸãã
-Odnoklassnikiã®äœããŒã»ã³ãããç§å¯ã§ã¯ãªããšããŠããJava 7ã§åäœããŸããïŒãŸããJava 8ã§åäœããŸããïŒ
-Java 6ã«ãã·ã¹ãã ããããŸãã幞ããªããšã«ããããã¯ã»ãšãã©ãããŸããã äœå¹Žãåèµ·åããªããµãŒãã¹ããããŸãã ããããã¢ããã°ã¬ãŒãããæå³ã¯äœã§ããïŒ ä»äºãšä»äºã ãã®ãããçŸåšèµ·åããŠãããã®ã¯ãã¹ãŠæ°ãããããã«JDK 8ã§èµ·åããŸãããããã®ãµãŒãã¹ïŒå€ãã®å Žåãããã€ããããµãŒãã¹ïŒã¯ããã§ã«ã»ãŒãã¹ãŠãJDK 8ã«ç§»è¡ããŠããŸãã ãããŠæ¯é±æ°ãããã®ã翻蚳ãããŸãã
-Java 7ããJava 8ã«ç§»è¡ããéã®å°é£ã¯äœã§ããïŒ
-é©ãã¹ãããšã«ãJava 6ããJava 7ã«ç§»è¡ãããšãããããJava 7ããJava 8ã«ç§»è¡ãããšãã®åé¡ãã¯ããã«å°ãªãããšãããããŸããã UnicodeãµããŒãã®å€æŽãªã©ã§ããã
Java 8ã«åãæ¿ãããšãããã®ãããªåé¡ã¯ãããŸããã§ããã ããããJITã³ã³ãã€ã©ã®ãã°ã«ééããŸããã
äžè¬ã«ãæã ãäœããã®ãã°ãããå Žåãç§ãã¡ã¯ç¢ºãã«ããã«åºãããããã«æãããŸããOracleèªäœãããJavaããããããã¹ãã§ããã»ã©å€ãã®ãµãŒããŒãšãã®ãããªè² è·ãããããã§ãã
ããšãã°ãæ¬çªç°å¢ã§ãã«ãã¬ãã«ã³ã³ãã€ã«ãç¡å¹ã«ããŸãããããã¯ãOracleã®ã¹ã¿ãããç±å¿ã«ãã£ãããšã§ããC1ã³ã³ãã€ã©ã«é倧ãªãã°ããããããããã«C2ã§ã³ã³ãã€ã«ããŸãã
-ãŸã ãã®ãã°ãä¿®æ£ããŸãããïŒ
-ã¯ããJDK 8u60ãåé¡ã解決ããããã§ãã JITã³ã³ãã€ã©ãŒã§ã¯ããªã©ã¯ã«ã®ã¹ã¿ãããåé¡ãéåžžã«è¿ éã«ã¯ãªãŒã³ã¢ããããŸãã ããããé倧ãªè匱æ§ããããŸãããä»®æ³ãã·ã³å šäœãã¯ã©ãã·ã¥ãããåçŽãªJavaã³ãŒããæžãããšãã§ããŸããã ã¡ãªã¿ã«ãããŒãžã§ã³8u40ã§ã¯ãã³ã³ãã€ã©ãŒã§2ã€ã®ãã°ãä¿®æ£ãããç§ãæåºïŒãŸãšãã-èè ã®ã¡ã¢ïŒã
ä»®æ³åãå®å šã§ãªããã¯ã©ã¹ã¡ãŒãã«ã€ããŠ
-ãããŠãã·ã¹ãã ãšããŠã®Odnoklassnikiãããžã§ã¯ãã®å€§ããã¯ïŒ ãµãã·ã¹ãã ãã¬ã€ã€ãŒã¯ããã€ãããŸããïŒ
-ããããã çŽ200ã®ã¢ãžã¥ãŒã«ãšãããããæ倧æ°ã®1äžåã®Javaã¯ã©ã¹ãã¡ã€ã«ããããŸãã 2004幎ã«äœæããããœãŒã¹ã³ã¡ã³ãã§èŠã€ããããšãã§ããŸãã ãããããåç¥ã®ããã«ãOdnoklassnikiã¯CïŒã§å§ãŸãããã®åŸæ°ãæã®å¿ããæ¥ãšç ããªãå€ã«æ°äººã®ããŒã ããã¹ãŠãæžãçŽããŸããã ã€ãŸããOdnoklassnikiã®ä»¥åã®ããŒãžã§ã³ã«ã¯äœãæ®ã£ãŠããŸããã
-çŸåšãOdnoklassnikiã¯é«è² è·ã®Javaãããžã§ã¯ãã§ããããã·ã¢æ倧ã®Javaãããžã§ã¯ãã§ãã äžçã«ã¯å€ãã®åæ§ã®ãããžã§ã¯ãããããŸããïŒ
-ãã©ãã£ãã¯ã«é¢ããŠã¯ãAlexaã«ãããšäžçã®ããã100ã«å ¥ãããšãç¥ã£ãŠããŸãã ãããŠããã·ã¢ã§ã¯ãä»ã7çªç®ã§ãã Javaãããžã§ã¯ãã®äžã§ãããããæ倧ã®ãããžã§ã¯ãã®1ã€ã§ãã
-VKontakteãšFacebookã¯ã倧éšåãPHPã³ãŒããå€ãæã£ãŠãããããPHPçšã®ä»®æ³ãã·ã³ããªãªãŒã¹ããŸããã ãã®ä»®æ³åã®åŸåã¯ã©ãããæ¥ãã®ã§ããïŒ
-ä»®æ³åã¯äŸ¿å©ã§ãïŒ åºãæå³ã§ã¯ããã銎æã¿ã®ããã¬ã€ã€ãŒã§äœæ¥ããããšãã§ããŸãã æçµçãªéçºè ã¯ãã¢ãŒããã¯ãã£ã®ã©ã®ãã€ã¯ãåœä»€ãå€æãããããããã³ããã»ããµã§ã©ã®ããã«åŠçããããã«ã€ããŠå¿é ããã¹ãã§ã¯ãããŸããã
-2012幎ã«ãã¢ã³ã»ãŒãã«ã€ããŠå€ãã®ããšã話ããŸããã ãããŠä»ããããããæ zyãªäººã ããJavaããŒãã£ãŒã®Unsafeã«ã€ããŠèªã£ãŠããªãã å®å šã§ãªãããã°ã©ãã³ã°ææ³ãä¿é²ããããšã«ã€ããŠããªãã責ãããã§ãã
-ç§ã¯ãããã宣äŒããŸãã-ç§ã¯ãããã䜿çšããŸãïŒ å¿ èŠãªãã®ããã¹ãŠJavaã«ããããã§ã¯ãªãããã§ãã
Javaã¯ããšããšããŒããŠã§ã¢ã«äŸåããªããã©ãããã©ãŒã ãšããŠèããããŠããŸãããäžåºŠæžããŠã奜ããªå Žæã§å®è¡ããŸãã ããããããã§ã¯Odnoklassnikiã«ããã64ãããLinuxãIntelããã»ããµã§ãã¹ãŠãå®è¡ããŠããŸããJavaã®ãã®ãããªç§»æ€æ§ã¯å¿ èŠãããŸãããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšå®è¡ããããŒããŠã§ã¢ã®æ©èœãæ倧éã«æŽ»çšããããšèããŠããŸãã ãã®ããã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®å¥¥æ·±ãã«æãç©Žãæãå¿ èŠããããŸãã
ããã§ã¯ãã¡ãã£ãšããäŸã§ãã ããããã®ãã£ãã·ã¥ããããŸã-äžè¬ã«ãOdnoklassnikiãæã£ãŠãã8,000å°ã®ãµãŒããŒã®ãã¡ãã»ãŒååããã¹ãŠã®çš®é¡ã®ãã£ãã·ã¥ã§ãã ãããŠãã¹ãããã·ã§ãããæžã蟌ãŸãããšãRAMã®ããŒã¿ããã£ã¹ã¯ã«ãã³ããããŸãã ãããçŽç²ã«Javaã«ãã£ãŠè¡ãããå Žåãã¡ã¢ãªæ¶è²»éã¯å€§å¹ ã«å¢å ããŸãã ãããŠãLinuxåºæã®ãã³ãã ãã圌女ã«äŒããããšãã§ããŸããããã®ããŒã¿ããã£ãã·ã¥ããªãã§ãã ãããè¿ãå°æ¥å¿ èŠãããŸãããã
ãããã¯åã«Linuxãèšå®ããã ãã§ã¯ã§ããªãã®ã§ããïŒã ã¢ããªã±ãŒã·ã§ã³ã«å ¥ãçç±ãç解ã§ããŸããã§ããããªããã®ãã³ã暪ã«ããã®ã§ããïŒ
-Linuxã®å Žåããã¹ãŠãåãã§ãïŒJavaãã¡ã€ã«ãæžã蟌ããã®ãã·ã¹ãã å ã®ä»ã®ããã»ã¹ã ããã°ã©ããŒèªèº«ããã£ãã·ã¥ããããã®ãåºå¥ããå¿ èŠããããŸãããããã¯éããŸãã ãããã£ãŠãã€ãã·ã¢ããã¯ã¢ããªã±ãŒã·ã§ã³ã®åŽããè¡ãå¿ èŠããããŸãã
é«è² è·ã«ã€ããŠ
-Odnoklassnikiã®ã©ã®éšåãæãè² è·ãé«ãã§ããïŒ
-æãããŒããããŠããã®ã¯ããŠãŒã¶ãŒãã¡ã€ã³ããŒãžã«ã¢ã¯ã»ã¹ãããšãã«ãã¥ãŒã¹ãã£ãŒããšããŠéããªãã³ãµãŒãã¹ã§ãã ããã§ã¯ãç°ãªããœãŒã¹ããã®ããŒã¿ãããããåéãããŸãã
å¥ã®äŸã¯ããåæ ãããã¥ãŒã¹ãã¡ãã»ãŒãžãã®ããã«é¢ããããã·ã¥éç¥ã®å³æé ä¿¡ã§ãã ãµãŒããŒããšã«1ç§ãããæ倧50,000件ã®èŠæ±ããããŸãã
äžéšã®ããã·ã¥éç¥ã¯ãå®éã«ã¯é·ãããŒãªã³ã°ã§å®è£ ãããŠããŸããã¯ã©ã€ã¢ã³ãåŽããã®é·ãhttpèŠæ±ãããã10åéãŸãã¯ããŒã¿ãå°çãããŸã§ãã³ã°ããŸãã ãŸããããã¯ãšã³ãåŽã«ã¯ããã€ãã©ãã§ãã©ã®ããã³ããšã³ãã§ã©ã®ãŠãŒã¶ãŒã座ã£ãŠããããç¥ãåå¥ã®ãµãŒãã¹ããããŸãã ã€ãŸããã¢ãã€ã«ããã€ã¹äžãWebããŒãžã§ã³ã®ããŒã¿ã«äžãªã©ãè€æ°ã®ã¯ã©ã€ã¢ã³ããéãããšãã§ããŸãã ããªããç解ããããã«ããããã®ãã·ã³ã¯çŽåå°ãããŸãã
-ããã¯ã8000å°ãã¹ãŠã®ãµãŒããŒã®ããªãã®å²åã§ããããšãããããŸããã ããšãã°ããªãWebSocketã䜿çšããªãã®ã§ããïŒ
-WebSocketãšã¯ç°ãªãããã³ã°ããŒãªã³ã°ã¯ã»ãŒã©ãã§ããµããŒããããŠããŸãã ãã¡ãããå€ããŠå€ããã©ãŠã¶ããããŸãã ããšãã°ãInternet Explorer 8ã ããããããã«ãããæŸæ£ãããã§ãã
æ£èŠåãšéæ£èŠåã«ã€ããŠ
-ãšã³ã¿ãŒãã©ã€ãºã®äžçã§ã¯ãéåžžãå€ãã®Java EEãå€ãã®HibernateãSpringãªã©ããããŸãã ã©ããªæè¡ããããŸããïŒ
-ããžãã¹ããžãã¯ã®ã»ãšãã©ãæ åœããæ倧ã®ã¢ãžã¥ãŒã«ã®1ã€ã¯ãåŸæ¥odnoklassniki-ejbãšåŒã°ããŠããŸãã ããããå®éã«ã¯ãEJBããä»æ¥ãŸã§ããŸã£ããäœãæ®ã£ãŠããŸããã§ããã ç§ã¯æšå¹Žããã®ã¿ã¹ã¯ãèšå®ããŸãã-ãããžã§ã¯ãããEJBãã«ããããããã 3æ¥éã®ããã«ãœã³ããããéåžžã¯ååãªæéããªããããžã§ã¯ããéçºè ãèªåã§éžæããããšãã§ããŸããã ããã§ãã¡ã€ã³ã¢ãžã¥ãŒã«ãããšã³ã¿ãŒãã©ã€ãºãå®å šã«åé€ããããšã«ããŸããã ãããŠä»ãããã¯éåžžã®Javaã¢ããªã±ãŒã·ã§ã³ã§ãã è¡ãã
Spring-Springã«é¢ããŠã¯ããããããããŸãã
ãHibernateã¯ã©ãã§ããïŒã
ããããããã圌ãããªãïŒã ã©ã®ãªã¯ãšã¹ããšã©ã®ããã«å®è¡ããããéåžžã«æ£ç¢ºãã€å®å šã«å¶åŸ¡ããå¿ èŠããããŸãã ã·ã¹ãã ã®äžéšãã¹ãã¬ãŒãžã®äžéšã¯ãåŸæ¥ã¯Microsoft SQL Serverã«æ®ã£ãŠããŸããããçŸåšã§ã¯ãŸããŸãNoSQLãœãªã¥ãŒã·ã§ã³ã«ç§»è¡ããŠããŸãã
SQLããŒã¿ããŒã¹ãè² è·ã«å¯ŸåŠããã«ã¯ãå€ãã®æ©èœãæŸæ£ããå¿ èŠããããŸãã ç¹ã«ãçµåãããªã¬ãŒãã¹ãã¢ãããã·ãŒãžã£ã¯äœ¿çšããŸããã
-ã€ãŸããçåŸã¯ãæ£èŠåãããããã«æãããããããã圌ãã¯ããªãã«æ¥ãŠããéæ£èŠåããšèšããŸããïŒ
-ãã®ãããªãã®ãã¯ãã ãã¡ãããSQLãµãŒããŒããããžãã¹ããžãã¯ãµãŒããŒã«è² è·ã転éã§ããå Žåã¯ãããã転éããŸããSQLãµãŒããŒãåäœããããã»ããµã®å®¹éã«å¯ŸããŠæéãæ¯æãããã§ãã
-ãªãã§ïŒ ãããŠãjoinã®äœãåé¡ã«ãªã£ãŠããŸããïŒ
-åæ£ããã³ããŒãã£ã·ã§ã³ããŒã¿ããŒã¹ããããŸãã åãµãŒããŒã«1/16ã®ããŒã¿ãããå Žåãã©ã®ããã«åå ããŸããïŒ
-ã·ã£ãŒãã£ã³ã°ãåããææ°ã®ã·ã¹ãã ã¯ããŸãæ©èœããŸãããïŒ ç¢ºãã«ãããã€ãã®åªãããšã³ã¿ãŒãã©ã€ãºã®ããã§ã...
-å®éãäŒæ¥ãšåŒã°ãããã®ã¯ãã¹ãŠãç§ãã¡ã®è² è·ã§ã¯æ©èœããŸããã ã¯ããããã¯è² è·ãããäœãããä¿¡é Œæ§ã®ããã®ããæ·±å»ãªèŠä»¶ã§ããéè¡ã»ã¯ã¿ãŒãä»ã®ã©ããã§ããèªèº«ããã瀺ããŠããŸãã ãŸããå€ãã®ã·ã¹ãã ã§ã®çµææŽåæ§ã«ãæºè¶³ããŠããŸããããšãã°ããããã£ãŒã«åçãå€æŽããããšãå人ãããã«ç¢ºèªã§ãããªã©ãéãã¯äœã§ããïŒ
ãšã³ãžãã¢ãªã³ã°ã®åŠ¥åãã·ã£ãŒãã£ã³ã°ãåªããã¬ããŒãžã³ã¬ã¯ã¿ãŒã«ã€ããŠ
-äžè¬çã«ãç§ã¯ãã¬ãŒããªãã®ãããã¯ãæ¬åœã«å¥œãã§ãã ããã«ã€ããŠè©±ããŸããããïŒ ãªããã¯ã©ã¹ããã«ã¯äœããããŸããïŒ ããã©ãŒãã³ã¹ãæãéèŠã§ããããšãç解ããŠããŸãã
-äœããã®æ¹æ³ã§ãããã³ããšã³ãéçºè ã§ãã£ãŠããçç£æ§ã«ã€ããŠèããå¿ èŠããããŸãã
ããã«2ã€ã®ãªã¹ãããããŸãããã©ãã«ãããŠãããã1ã€ã«çµåããå¿ èŠããããŸãã
ã¯ããç°¡åãª2次ã¢ã«ãŽãªãºã ãæžãæ¹ãç°¡åã§ãã ããããããªãã®ãµãŒãã¹ã人æ°ãç²åŸããæé·ããããšãç¥ã£ããšãããªã¹ãã¯1äžãš10äžã®èŠçŽ ã«ãªããŸã...ããªãã¯èãå§ããŸãã çµå±ãäºæ¬¡ã¢ã«ãŽãªãºã ã¯é ããªããŸãã
-ããããä»ã®ããŒã ã¯ããããç°ãªãåªå é äœãæã£ãŠããŸããããšãã°ãããã©ãŒãã³ã¹ã§ããïŒ ãŸããçµåããªããšããäºå®ïŒããŒã¿ãéæ£èŠåãããŠããå Žåãå€ãã®ãã£ã¹ã¯é åãç¡é§ã«ãªã£ãŠããŸããïŒ
-ã©ãã§ãã©ã®ããã«ã ç¹°ãè¿ããŸãããããã¯ãã¬ãŒããªãã§ãã éæ£èŠåããŠåãããŒãã«ã®ãã£ãŒã«ãã«çŽæ¥æ ŒçŽãããšãå°ãã¹ããŒã¹ãå¿ èŠã«ãªãããšãäºæ³ãããŸãã ãŸãã¯ãããžãã¹ããžãã¯ã®åŽã§åå ããŸãã IDãååŸãããããã«ä¹ã£ãŠä»ã®ãµãã·ã¹ãã ã«å ¥ããŸãã
ã·ã³ãã«ã§ããããããäŸãæããããšæããŸããååãã¢ãã¿ãŒãªã©ãå«ããã¹ãŠã®åéã®ãªã¹ããååŸããæ¹æ³ã¯ïŒ æåã«ãæ¥ç¶ã°ã©ãã®å¥ã®ãµãã·ã¹ãã ã«ãªã¯ãšã¹ããè¡ãããIDã«ãã£ãŠå人ã®IDãååŸãããŸãã ãªã³ã¯ã°ã©ãã«ã¯ãID以å€ã®æ å ±ã¯å«ãŸããªããªããŸããã IDã®é åãåãåã£ãã®ã§ããŠãŒã¶ãŒãã£ãã·ã¥ã®2çªç®ã®èŠæ±ãæ¢ã«å®è¡ããŠããŸãããããã®IDã«ãã£ãŠãŠãŒã¶ãŒã«é¢ããæ å ±ãååŸããŸãã
ãã¡ããããã®ããŒã¿ã¯ç¶²æããããŠããŸãã ãªã¢ãŒãåŠçã¢ãžã¥ãŒã«ã«å®è£ ãããäžçš®ã®MapReduceããããŸããã€ãŸããã·ã¹ãã èªäœãã·ã£ãŒãã«ãã£ãŠãªã¯ãšã¹ããåæ£ãããããã䞊åã«å®è¡ããŠããåéããããšãã§ããŸãã ããŒã¯ãä¿åãããŠããã·ã£ãŒããç¥ã£ãŠããŸãã
-ããªãã説æããã·ããªãªã§ã¯ãå°ãªããšã2ã€ã®ãªã¯ãšã¹ããäœæããŸãããããããã¯ãã¹ãŠäœããã®åœ¢ã§å éšã§éåžžã«é«éã«å®è¡ãããã¯ãã§ãã ããã¯å éšãããã¯ãŒã¯ãžã®åŒã³åºãã§ããã1ã€ã®ãµãã·ã¹ãã ãå¥ã®ãµãã·ã¹ãã ã«å€ããããããããã¯ãŒã¯ã¯äžåºŠã«å€§éã«ãžã£ã³ãããŸã...ãã®ãããªåŒã³åºãã®ãã§ãŒã³ã§ã¯ãå€ãã®ãããã¯ãŒã¯èŠæ±ãçºçããŸãã
-ãã¡ããã ããããå®éã«ã¯ãAjaxãªã¯ãšã¹ãã®å¹³ååŸ æ©æéã¯5ããªç§ã§ãã ããã¯ããŠãŒã¶ãŒããããã³ããšã³ãã«ç§»åãããã£ãã«ãã«ãŠã³ãããŠããŸããã ã€ãŸããããã¯ããŒã¿ã«å ã®æéã§ãã 5ããªç§ãç é¢ã®å¹³åã§ããããšã¯æããã§ãã 50ããªç§ã®ãªã¯ãšã¹ãããããéåžžã«çããªã¯ãšã¹ãããããŸãã
ãã€ãŸããããŒã»ã³ã¿ã€ã«ãšã¯äœã ãšæããŸããïŒã 90幎代ïŒ
-90çªç®ã ç解ããããã«ãåãããŒã¿ã»ã³ã¿ãŒã®ãµãŒããŒãžã®1ã€ã®ãªã¢ãŒããªã¯ãšã¹ãã«ã¯300ãã€ã¯ãç§ãããããã1ã€ã®ããŒã¿ã»ã³ã¿ãŒã®ãµãŒããŒãžã®1ããªç§ããããŸãã ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãçºçããããšã¯æããã§ãã100ããªç§ãš200ããªç§ããããŸãã ãããããããã¯ãŸãã§ãã GCã®é·ãäžæåæ¢ã«èŠåŽããŠããŸãã ã»ãšãã©ã®ã·ã¹ãã ã§ã¯ã1ç§ã®äŒæ¢ããã§ã«éèŠã§ãã
-ã©ã®GCã䜿çšãããŠããŸããïŒ
-ã»ãšãã©ã®å Žåãé©åã«èª¿æŽãããCMSã äžè¬ã«ãGarbage-FirstãããããŸãæ©èœããŸãã ãã ããããã§ãG1ã䜿çšãããŸããããšãã°ãå¿çæéãä¿èšŒããããã«SQLãµãŒããŒã眮ãæããããã«ãªã£ãNewSQLã®èªå·±èšè¿°ãœãªã¥ãŒã·ã§ã³ã§äœ¿çšãããŸãã
ã€ãŸããå¹³åããŠãG1ã¯ãããŸããªCMSãããå°ãæªãåäœãããŸãããåæã«ããå€ãã®ä¿èšŒãæäŸããŸãã ããšãã°ãCMSã«ã¯å¹³åã§50ããªç§ã®é 延ããããŸãããæ倧ã§300ã400ããªç§ã«éããããšããããŸãã ãããŠãG1ã¯ããããããé »ç¹ã«åéããå¹³åã§æ倧150ããªç§ã®äŒæ¢ããããŸããã200ããªç§ã®å¶éãäžããããããã«èããããšããŠããŸãã
ãJavaãäœã§ãããã倧ãŸãã«æ³åããŠã次ã®ã³ãã³ããå®è¡ãããšç解ã§ããŸãããG1ã200ããªç§ã®äžæåæ¢ããå®è¡ããŠãã ãããå®éã«ã¯200ããªç§ã¯ãããŸããã ããæ£ç¢ºã«ã¯ããããªããŸãããããçšåºŠã®ç¢ºçããããŸãã ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ããããã®æ¡ä»¶ä»ã200ããªç§ããã©ããããã®é »åºŠã§ã¯ããŒã«ããŸããïŒ
-ãã£ãã«ãããŸããã é©ãã¹ãããšã«ã JDK 8u40以éãG1ã¯åªããã³ã¬ã¯ã¿ãŒã«ãªããŸããã 以åã«å®å šãªã¢ã»ã³ããªãªãã§æªäœ¿çšã®ã¯ã©ã¹ãã¢ã³ããŒãããããšããã§ããªãã£ãå Žåããã®ããŒãžã§ã³ãããã§ã«ããªãã®çç£å質ãæã£ãŠããŸãã
-JDK9ã§ã¯ãGarbage-Firstãããã©ã«ãã®ã³ã¬ã¯ã¿ãŒã«ãªããŸãã JDK9ã¯1幎åŸã®2016幎9æã«ãªãªãŒã¹ãããŸãã Java 9ã«ã¢ããã°ã¬ãŒãããŸããïŒ
-æãå¯èœæ§ãé«ãã®ã¯ãG8ã®ãµããŒããçµäºãããšãã«æŽæ°ãåãåãããã§ãã å®éãããã¯Java 7ã§èµ·ãããŸãããæ°ããæŽæ°ãåãåãããã®ã§ãJava 7ãã移è¡ãå§ããŸããã JDKã³ã³ãã€ã©ã®ããªãéèŠãªä¿®æ£ãããã¯ããŒãããããã«JDK7ã®ããŒãžã§ã³ã«ããããåœãŠãå¿ èŠããããJDK8ã§ã®ã¿ä¿®æ£ãããŸããã
-ãããŠãããã€ãã®æ¡ä»¶ä»ãAzulãæ¡çšããŠã¿ãŠãã ãããAzulã¯ãããã¯ããŒããšå€ãJavaã®ãµããŒãã«åŸäºããŠããããžãã¹ã®å€§éšåãå ããŸããã
-ç§ãã¡ãç ç²ã«ããŠã¢ãºãŒã«ãç²åŸããæ©äŒãäžããããã«ïŒ :)ãã€ã³ãã¯äœã§ããïŒ çŸåšãããã«å¯ŸåŠã§ããå°é家ãããŸãã
Javaããã©ãŒãã³ã¹ã«ã€ããŠ
-é·ãéãJDKãJREã®ããã©ãŒãã³ã¹ã®çªç Žã«é¢ãããã¥ãŒã¹ã¯ãããŸããã§ããã ãŸããããããŒãžã§ã³ã«åãæ¿ããåŸãçç£æ§ãå€§å¹ ã«åäžãããšããããšã¯ãããŸãããïŒ
-åã«äº€æããŒãžã§ã³ã䜿çšãããããªãã®ã¯ãããŸããã§ããã
-ãã®çç±ã¯äœã§ããïŒ ææ¥ãJITã§ã¯ãŒã«ãªæé©åããªãªãŒã¹ããã20ïŒ ã®ããã©ãŒãã³ã¹ãåŸãããå¯èœæ§ã¯ãããŸããïŒ
-ãã®ç¢ºçã¯ãŒãã«è¿ãã§ãã èå³æ·±ãæé©åãè¡ãããŸãããæè¿ã§ã¯ãã¯ãã«åããµã€ã¯ã«ã§è¡ãããŠããŸãã
-æŽæ°ã«ããå ç®ãšä¹ç®ïŒ ããã¯ç°¡åãªããšã®ããã«æããŸã...
-ã¯ããã«ãŒãå ã®é åã䜿çšããæŽæ°æŒç®ã«ã€ããŠèª¬æããŠããŸãã ä»ã§ããããã¯åžžã«æ©èœãããšã¯éããŸããã ããããå°ãªããšãæé©åã¯ãã§ã«ååšããŸãã ã€ãŸãããããã®æé©åã¯ãã¹ãŠãæ°ããŒã»ã³ããã»ãã®æ°ããŒã»ã³ããæäŸããã ãã§ãã æ¥æ¿ãªãžã£ã³ãã«ã€ããŠã¯è©±ããŠããŸããã
-ã»ãã¥ãªãã£ã«é¢ãã質åã 2012幎ãŸã§ãJavaã®ã¢ãããŒã¯ãCompatibility-Firstãã§ããã 2012幎以éããã»ãã¥ãªãã£ãã¡ãŒã¹ããã«ãªã£ãŠããŸãã ããã§ãããŒã¿ã«ãšããŠãããªãã¯äœãšããããæããŸãããïŒ
-ãŸããåé¡ã¯JVMã®ã¯ã©ãã·ã¥ãåŒãèµ·ãããã°ã§ãã ãã以å€ã®å ŽåãJavaã®è匱æ§ãç¥ã£ãŠããããã³ã°ãããäŸã¯ãããŸããã APIã«ããçš®ã®ç©ŽãèŠã€ããã®ã¯ã¯ããã«ç°¡åã§ãã
ã¹ãã¬ãŒãžãšCassandraã«ã€ããŠ
-Javaããé¢ããŠãã¹ãã¬ãŒãžã·ã¹ãã ã«ã€ããŠè©±ããŸãããã ã©ã®ããã«æ©èœããŸããïŒ ã©ã®ãã¡ã€ã«ã·ã¹ãã ã䜿çšãããŠããŸããïŒ
-å€ãã®éåžžã«ç°ãªãïŒèªäœãšæšæºã®äž¡æ¹ã ä»æ¥ãããããæãã«ãµã³ãã©ããŒã¹ã®ãªããžããªã
-ãªããŸãã«ã«ãµã³ãã©ãªã®ãïŒ
-ãã®ä»ã¯åã«æ©èœããŸãããfileloverã¯ãããŸãããã»ãšãã©æåã§è€è£œã§ããŸãã ãããŠãè€è£œã¯éèŠãªããžãã¹èŠä»¶ã§ãã ããŒã¿ã»ã³ã¿ãŒã®1ã€ã«é害ãçºçããå Žåã§ããããŒã¿ã«ã®æ©èœå šäœãå®å šã«æ©èœããããã«åªããŠããŸãã
-ãããŠãåèšããŒã¿ã»ã³ã¿ãŒã¯ããã€ãããŸããïŒ
-3ã ãŸããã¯ã©ãã·ã¥ããå Žåã§ããŠãŒã¶ãŒã¯ãã°ã€ã³ã§ããŸãããäžéšã®ãµãŒãã¹ã¯å©çšã§ããŸããã äž»èŠãªãµãŒãã¹ã§ä¿¡é Œæ§ã確ä¿ããããã®äœæ¥ãéå§ããŸããããçŸåšã¯ããŒã«ã®ã¯ãªãŒãã³ã°ãè¡ã£ãŠããŸãã
-3ã€ã®ããŒã¿ã»ã³ã¿ãŒãæã€åæ£ã·ã¹ãã ãžã®ç§»è¡ããã»ã¹ã«ã€ããŠæããŠãã ããã ããã¯ã©ã®ããã«æ©èœããŸããïŒ
-ã©ã€ãã©ãªããªããžããªãããã³ããŒã«èªäœã¯ããã©ãããã©ãŒã ããŒã ã«ãã£ãŠäœæãããŸãã ããšãã°ãéãã³ã³ãã³ãïŒåçããããªãé³æ¥œïŒã®å Žåãå èµã¹ãã¬ãŒãžã䜿çšãããŸãã æè¿ãEMCã®ååããªãã£ã¹ã«æ¥ãŠãããŸããã圌ãã¯æ å ±ã¹ãã¬ãŒãžã®åéã§ã®ãœãªã¥ãŒã·ã§ã³ã§ç¥ãããŠããŸãã 圌ãã¯æ±ºå®ã«ã€ããŠè©±ããçµéšãå ±æããŸããã ããããå€æããããã«ã圌ãã¯ç§ãã¡ããã§ã«æã£ãŠãããã®ãšæ¯èŒããŠæ°ãããã®ãæäŸããããšã¯ã§ããŸããã
-ã¯ããEMCã¯é¢çœã人ã§ãã ãšããã§ãããªãã®æèŠã§ã¯ãOdnoklassnikiã®æè¡çãªå°éç¥èã¯äœã§ããïŒ ã¯ãŒã«ãã¯ã©ã¹ã®çµéšã¯ãããŸããïŒ
-æåã«æãæµ®ãã¶ã®ã¯ãã«ãµã³ãã©ã§ãã ç§ãã¡ã¯ããã«å¯èŒžããçŸåšã®Cassandraãã¹ã¿ãŒãã©ã³ãã«ãããã®ãšæ¯èŒããŠåžžã«å ãè¡ã£ãŠããŸãã ããã«äœæãããã°ããã®ã°ããŒãã«ã€ã³ããã¯ã¹-æ¢ã«äœ¿çšãããŠãããå®å šã«äœ¿çšãããŠããŸãã
ãŸããæšå¥šã·ã¹ãã ã®å°éç¥èãè±å¯ã§ãã åœåãé³æ¥œã®æšå¥šã·ã¹ãã ããããŸããããçŸåšã§ã¯ä»ã®å€ãã®ãµãŒãã¹ïŒãããªãã°ã«ãŒãïŒã«æ¢ã«æ¥ç¶ãããŠããŸãã ããŒã¿ã«ã®äž»ãªã¿ã¹ã¯ã¯ãèå³ã®ããã³ã³ãã³ãã人ã ã«èŠããããšã§ãããèå³ã®ãªãã³ã³ãã³ããèŠããããšã§ã¯ãããŸããã ããã«ããããŠãŒã¶ãŒã¯Odnoklassnikiã§é·ããã³ã°ã¢ããããããã«ãªããŸãã
ãã¡ãããJVMã®åŒ·åãªå°éç¥èããããŸãã
-ãããŠãããªãã®æèŠã§ã¯ãã©ãã«å°éç¥èãå¿ èŠã§ãããä»æ¥äœãæ¬ ããŠããŸããïŒ
-ç»åèªèã®èŠ³ç¹ããã GoogleããåŠã¶ããšã¯ãããããããŸãã
-ç§ãç解ããŠããããã«ãã¹ãã¬ãŒãžãé åžãããã³ãã£ãã·ã¥ã«é¢é£ãããã¹ãŠãè¡ãç¹å®ã®ãã©ãããã©ãŒã ããŒã ããããŸãã ãŸããã©ã€ãã©ãªãAPIããµãŒãã¹ã®åœ¢åŒã§ä»ã®ããŒã ã«äœæ¥ãæ瀺ããŸããïŒ
-ãŸãã«ã æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã ãã ããå¥ã®ããŒã ã®éçºè ã¯ããã¡ãããããã€ãã®æ©èœãç¥ã£ãŠããå¿ èŠããããŸããã©ã®èŠæ±ã軜ãããã©ãã ãéãããäœãã§ããããã§ããªãããç解ããããã§ãã
-ãããjavadocã®åœ¢ã§åœŒã«èª¬æããŸãããããã§ãªããã°ãã®ç¥èãäŒããŸããïŒ
-ãããã®æ±ºå®ã®èè ãè¬çŸ©ãã»ãããŒãå®æœããå Žåããã®ãããªæ £è¡ããããŸãã ããã»ã©é »ç¹ã§ã¯ãããŸããããäž»ã«åå¿è åãã§ãããçµéšè±å¯ãªéçºè ã¯ååãšããŠãæ°ããããšãåŠã¶ããšãã§ããŸãã
ãŸããã³ãŒãã¬ãã¥ãŒã®æé ããããŸãããã人ãç§ã®æ±ºå®ãäžããããã«åºã¥ããŠäœããæ§ç¯ããå ŽåãåŸã§ç§ã«æ¥ãŠããã¢ã³ãã¬ã€ãããã§å€§äžå€«ã§ããïŒããšå°ããã§ããããã©ãã§äœãä¿®æ£ãããã
-ãããŠãAPIã誀ã£ãŠäœ¿çšã§ããªãããã«ããããã«äœãããŠããŸããïŒ
-å人çã«ã¯ããã®ç¹ã§ã¯ããŸãããŸããã£ãŠããŸãããã§ããã ãç°¡æœã§ã·ã³ãã«ãªã³ãŒãã«ããããã«ããŠããŸãã ãããŠãããªããããã誀ã£ãŠäœ¿çšããå Žå-ããªãã¯ãèªåèªèº«ã«æªãããããªãã§ã-ãããè¡ãæ¹æ³ãç解ããããã«ããã¥ã¡ã³ããè¬çŸ©ãåç §ããŠãã ããã
-ããããããã¥ã¡ã³ãã¯ååãšããŠææ°ã§ããïŒ
-ã¯ãããªã¢ãŒãã£ã³ã°ãšã·ãªã¢ã«åã«é¢ãã詳现ãªFAQãæžããããšããããŸãã
ç§ãã¡ã¯åã«ç¬èªã®ã·ã¹ãã ã䜿çšããŸãïŒäžæåæ¢ãµãŒãã¹ãªãã§ãªã³ã©ã€ã³æŽæ°ãè¡ãããšãã§ããæ°ããããŒãžã§ã³ã®ã¯ã©ã¹ã®ããŒãžã§ã³ãããŒã¿ã«ã®äžéšã§åäœããããäžæ¹ã®å€ãããŒãžã§ã³ã§åäœããŠããç¶æ³ã解決ããããã«ãäžåºŠã«JBoss Remotingã«åãæ¿ããŸããã
ããã§ãã圌ããç§ã®ãšããã«æ¥ãŠããã©ããã£ãŠãã®ããã«ã·ãªã¢ã©ã€ãºãããã®ã§ããããïŒããããã®ãããªå€æãè¡ãããšã¯å¯èœã§ããïŒã
-ããããJBoss Remotingã¯ãã®æ¹æ³ãç¥ããŸãããïŒ ãããšãæªåããŠããŸããïŒ
-æšæºã®ã·ãªã¢ã«åãããããã«æªãã ããã€ãã®å€æŽããµããŒãããŠããŸãããéãããç¯å²å ã§ããã£ãŒã«ããåé€ããããæ°ãããã£ãŒã«ããè¿œå ãããã§ããŸãããããã©ã«ãå€ã§åæåãããŸãã
ãããŠãããã§ãåãintããlongã«å€æŽããŠã¿ãŸãããã ãã©ã°ãã£ãŒã«ããããã32ããããŸããã§ãã-64ããããã£ãŒã«ãã«å€æŽãããŸããã ããã¯å žåçãªã±ãŒã¹ã§ãããæšæºã®ã·ãªã¢ã«åã§ã¯ãµããŒããããŠããŸããã
![](https://habrastorage.org/files/b35/dba/770/b35dba770a4843478631cd12e0ae1f6b.jpg)
ã¯ãŒã«ãªã·ã¹ãã ããã°ã©ãã«ãªãã«ã¯ïŒ
-Javaãã©ãããã©ãŒã èªäœãšãã®äœã¬ãã«ã®è©³çŽ°ã«èå³ããã人ãæ¢ãã«ã¯ãã©ããèªãããšããå§ãããŸããïŒ
-JVMãšHotSpotã®å éšã«ã€ããŠã¯ãäžéšã®ãµãŒãããŒãã£ã®ãœãŒã¹ã§ã¯ããŸãèšè¿°ãããŠããŸããã 幞ããªããšã«ãããã¯ãªãŒãã³ãœãŒã¹è£œåã§ããããŠã³ããŒãããŠåç §ã§ããŸãã HotSpotã³ãŒãã«ã¯ãã³ãŒãèªäœãããå€ãã®ã³ã¡ã³ããããå ŽåããããŸãã
-ããã¯ã»ãšãã©C ++ã§ãããïŒ
-ã¯ãã ããŠãJVMä»®æ³ãã·ã³ã®åäœã«ã¯äžè¬çãªæŠå¿µããããŸãã ããã§ã¯ããµã³ã¯ãããã«ãã«ã¯ã®JUGã§Oleg Plissã«ããçŽ æŽãããäžé£ã®è¬çŸ©ãã芧ã«ãªãããšããå§ãããŸãã
-ãã¶ããããªãã¯ããããã€ãã®æ¬ãå©èšããã§ããããïŒ
-ç§ã¯æ¬ã«å©èšããŸããã StackOverflowã§è³ªåããæ¹ãè¯ãã§ãããã ç§ãä»ããã«åº§ã£ãŠããŸãããããŠããªãã¯ç§ã«å°ããããšãã§ããŸãã
ããã§JVMãšJavaããã©ãŒãã³ã¹é¢é£ã®è³ªåã«ãµã€ã³ã¢ããããéèŠãªè³ªåã«å®æçã«åçããŸããã ãããŠæã ãç§èªèº«ãããããäœãæ°ããããšãåŠã³ãŸãã
ãã¡ãããäžååãªè³ªåãšåçããããããããŸãããããã«ã¯ç°ãªãã¡ã«ããºã ããããè©å€ã¯åãã§ãã ããããããã§ã¯äžçææ°ã®å°é家ã«äŒãããšãã§ããŸããå®æçã«ãã©ã€ã¢ã³ã²ããèªèº«ããããèŠãŠãäœãã«ã€ããŠã³ã¡ã³ãããŸãã
-ãããŠãHabrïŒ ããŠãããªãã¯ãã£ãã«ããã«æžããŸããã
-Habréã®ã³ã³ãã³ãã®å質ã¯åŸã ã«äœäžããŠããããã«æãããŸã...ãããŠãç§ã¯Javaããã«ã€ããŠè©±ããŠããã ãã§ã¯ãããŸããã
ãŸããHabrãããã€ãã®ãµããããžã§ã¯ãã«åå²ããããšããäºå®ã«åœ±é¿ããŸãã ãããã£ãŠãããããã®èŠèŽè ã¯æžå°ããŠããŸãã 第äºã«ãã³ã¡ã³ãã1ã€ã ãã§ã¯äžååãªå Žåãããªãã¯å€±æããå¯èœæ§ããããŸã-ãã¡ãããããã«æžãåæ©ã¯æ¶ããŸãã
- æåŸã®èšäºã¯ãã¯ã©ã¹ããŒããŒã®äžŠåäœæ¥ã§ãããããã¯ãã©ã®ããã«çºçãããã«ã€ããŠã§ãã Googleã®ãã®ã³ãŒãã®äœæè ã¯ãããä¿®æ£ãã¹ãã ã£ããšæããŸããããããšãããã°ãšãã°ã誰ãããã°ãæã£ãŠããããšæããŸããïŒ
-圌ãã¯ãããä¿®æ£ããç§ãã¡ã¯ããªãè¿ éã«ä¿¡çšãäžããªããã°ãªããŸããã ããã¯å®å šã«èªæã§ã¯ãªããã°ã®ã¯ã©ã¹ã«å±ããŸãã ã³ãŒããèŠãã ãã§ã¯èŠã€ããããšãã§ããŸããã
-æ¬åœã«ãã®éçã¢ãã©ã€ã¶ãŒã¯è¿œè·¡ã§ããŸãããïŒ ãã®ã¯ã©ã¹ã¯ã¹ãŒããŒã¯ã©ã¹ã§ãããšããåçŽãªã«ãŒã«ãããããã«èŠããŸããããã®ãµãã¯ã©ã¹ã¯éçåæã䜿çšããŠéåžžã«ç°¡åã«å®è¡ã§ããŸãã åºæ¬çã«ãããã¯èª°ã§ããã£ããã§ããã«ãŒã«ã§ãã
-åæããŸãã ãããŸã§ã®ãšããããã®ãããªã«ãŒã«ã¯ãããŸããã§ããã ç§ãã¡ã®å ±éã®å人lanyã¯ãFindBugsã«èŠåèŠåãè¿œå ããããšããã§ã«çŽæããŠããŸã ã
ãããããåµé çãªèšç»âã¬ããŒããèšäºãæ¬âãŸã æã£ãŠããŸããïŒã
-ããããã®ã¢ã€ãã¢ããããŸããç§ã¯å€ãã«ã€ããŠæžãããã§ãããååãªæéã¯ãããŸããã JITã³ã³ãã€ã©ã®å éšãå®å šã«äºæž¬äžå¯èœãªæ¹æ³ã§ã®åäœãããã³ãã«ã§ããæååã®çš®é¡ã«ã€ããŠã¯ãèå³æ·±ãããšããããããããŸãã
ãŸããã·ã°ãã«ã䜿çšããŠLinuxãæäœããæ¹æ³ãæžããããšæããŸãã äŒçµ±çã«ãã·ã°ãã«ã¯ãšã©ãŒãçºçããå Žåã«ã®ã¿ã€ã³ã¿ãŒã»ãããããŸãããHotSpot JVMã¯ãã®å éšç®çã®ããã«ã·ã°ãã«ã«é¢é£ããå€ãã®èå³æ·±ãç¬éã䜿çšããŸãã ããã¯ãã·ã¹ãã ãœãããŠã§ã¢ã«ãšã£ãŠéåžžã«è¯ãæ¹æ³ã§ãã ããšãã°ãJavaã©ã³ã¿ã€ã ãªã©ã
çµè«ãšããŠããã€ãã®ããã«ã䟿å©ãªãªã³ã¯ïŒ