æ¸ç±ãJavaããã©ã¼ãã³ã¹ããèªãã§
ç£è¨³è ã®@cero-tããããé ãã¾ããã@cero-tããããããã¨ããããã¾ãã

- ä½è : Scott Oaks,ã¢ã¯ãã¯ã¨ã¹ããã¯ããã¸ã¼æ ªå¼ä¼ç¤¾ï¼ç£è¨³ï¼,寺ç°ä½³å¤®ï¼ç£è¨³ï¼,ç§éè¡
- åºç社/ã¡ã¼ã«ã¼: ãªã©ã¤ãªã¼ã¸ã£ãã³
- çºå£²æ¥: 2015/04/11
- ã¡ãã£ã¢: 大忬
- ãã®ååãå«ãããã° (3ä»¶) ãè¦ã
ããããå®éã«è²ã ãªæ¡ä»¶ã®è§£æãç¹°ãè¿ãã¨ãæ§è½é å»¶ã®è¦å ã¯å¤ç¨®å¤æ§ã§ããéå»ã«ééãã代表çãªãã®ã«ã¯ãGC以å¤ã«ã以ä¸ã®ãããªé å»¶è¦å ãããã¾ãã
- ã¢ããªã±ã¼ã·ã§ã³ã®ä¸å¹çãªãã¸ã㯠(ã«ã¼ãéå¤ããªãã¸ã§ã¯ãçæéå¤)
- é度ãªããã¯ãåææ¼ã/volatileæ¼ãããç¡éã«ã¼ãçºçã«ããCPUæ¶è²»
- ãã¼ã«ã«JVMå ã§ãªã¢ã¼ãEJBãå¼ã³åºããã¨ã«ããã·ãªã¢ã©ã¤ãºé å»¶
- JDBC executeBatch()æªä½¿ç¨ã§ã®ãã«ã¯æ´æ°
- JPAã®ãã§ããè¨å®èª¤ã(N+1åé¡)ã«ãã大éSQLçºè¡
- åæåã³ã¹ãã®é«ãFactoryã®å¤éåæå (EntityManagerFactory, ãã¼ãµã®Factory)
æ¬æ¸ Javaããã©ã¼ãã³ã¹ ã®ã¹ã³ã¼ãã¯é常ã«åºããä¸è¨ã®ãããªJVM ã Java SE API ã Java EEã®åºãç¯å²ã®æ§è½èª²é¡ã«ã¤ãã¦è§¦ãã¦ãã¾ããæ¬æ¸ã®ãããªå å®¹ãæ¥æ¬èªã§ã¯ä»ã¾ã§ãªãã£ãããããã©ãã«æã«ã¯Java Seriesã®Java Performanceã§è¦æ¦ããªãã調ã¹ã¦ãã¾ããããæ¬æ¸ãæºã®ä¸ã«ç½®ãã¦ãããã¨æãã¾ãã
以ä¸ãå人çã«å¬ããã£ãé¨åãã¾ã¨ãã¾ãã
JITã«é¢ããè¨åãå¬ãã
JITãã©ã®ãããªã³ã¼ããã³ã³ãã¤ã«å¯¾è±¡ã¨ãã¦ãã¦ãã©ã®ãããªã¿ã¤ãã³ã°ã§ã³ã³ãã¤ã«ãããã®ããå種é¾å¤ãOn Stack Replacementãã¨ã¹ã±ã¼ãåæã«ã¤ãã¦æ¸ç±ã§è¦ããããã¨ããªãã£ããããä»çµã¿ãçè§£ããä¸ã§å½¹ç«ã¡ã¾ããã
ãã©ãã«ãèµ·ããã¨ãã©ãããä»çµã¿ã§åé¡ãèµ·ãã£ãã®ããã®èª¬æãå¿
è¦ã¨ãªãã±ã¼ã¹ãããããã¾ããã³ã¼ããã£ãã·ã¥ã®æº¢ããèµ·ãã£ãå ´åã«ãããããJITã£ã¦ï¼ãã®èª¬æãæ±ããããå ´åã«åèã«ãããã¨æãã¾ãã
å ·ä½çãªGCãã°ãå¬ãã
CMS-GCã®promotion failedãconcurrent mode failureãG1GCã®to-space overflowãFullGCã®çºçãªã©ãä½ããã®ãã¥ã¼ãã³ã°ãè¡ã£ãæ¹ãè¯ãç¶æ³ã示ãGCãã°ãå ·ä½çã«ç¤ºããã¦ããããããã©ãã«æã«ããã«ä½¿ããå 容ã«ãªã£ã¦ãã¾ãã
æ°ããè§£æãã¼ã«ã®è§£èª¬ãå¬ãã
HotSpotã¨JRockitã®çµ±åã«ä¼´ããJava7以éã«æ§ã ãªãã¼ã«ãOracleJDKã«ä»å±ãããããã«ãªã£ã¦ãã¾ããjcmdãJava FlightRecorderãNative Memory Trackingã«ã¤ãã¦æ¬æ¸ã§ã¯è§£èª¬ããã¦ãããFlightRecorderã«ã¤ãã¦ã¯ã»ããã¢ããæ¹æ³ã ãã§ãªããåé対象ã¤ãã³ãã®èª¿æ´ããJavaãã¼ãã®Edenã¸ã®å²ãå½ã¦ãé«éåãããTLAB(thread local allocation buffer)ãååãã®è坿¹æ³ã«ã¾ã§è¸ã¿è¾¼ãã§è¨è¼ãã¦ãã¾ãã
ã¾ã¨ã
Javaããã©ã¼ãã³ã¹ã以ä¸ã®ãããªæ¹ã«ããããã§ãã