ãããŠãŧããŗãšãŽæéŠåã¯éˇãééįēč
ãæŠãžããĻããĻãããčåŗæˇąããŊãĒãĨãŧãˇã§ãŗã¨åĒããåŽį¸žãŽä¸į¨ŽãŽãéģéãŽéĩããŽãããĢčĻããžãã ååãŽJPoint 2017ã§ã大čĻæ¨Ąããã¸ã§ã¯ããŽæéŠåãŽä¸ģčĻãĒãã¤ãĢãšããŧãŗīŧä¸čŦååããããŠãããįįžãžã§īŧãŽå¤§čĻæ¨ĄãĒæĻčĻããĸãŧãããããŠãŧããŗãšãŽå°éåŽļã§ããAlexei ShipilevãĢããŖãĻčĄãããžããã
ãĢãããŽä¸-åŊŧãŽãŦããŧããŽããŗãŧãã
ãããĻãããã§ããŦãŧãŗããŧãˇã§ãŗčĒäŊãčĻã¤ãããã¨ãã§ããžãīŧ
jpoint-April2017-perf-keynote.pdfãšããŧãĢãŧãĢã¤ããĻ
Alexey Shipilev-10åš´äģĨä¸ãĢãããJavaãããŠãŧããŗãšãŽåéĄã įžå¨ã¯Red Hatã§åããĻãããããã§OpenJDKãéįēããããŽãããŠãŧããŗãšãĢåãįĩãã§ããžãã JMHãJOLãJCStressãĒãŠãOpenJDKãŽããã¤ããŽãĩãããã¸ã§ã¯ããéįēãããŗãĩããŧãããžãã Red HatãĢå
Ĩį¤žããåãåŊŧã¯Intelã§Apache HarmonyãĢåãįĩãŋãããŽåžOracleãĢ財åãããSun MicrosystemsãĢį§ģããžããã įįŖæ§ã¨ããĢããšãŦãããŽåéĄãĢåãįĩãã§ããå°éåŽļã°ãĢãŧãã¨ãŗããĨãããŖãĢįŠæĨĩįãĢéĸä¸ããĻããžããį§ã¯Red Hatã§åããĻããžãã äģĨåãį§ãOracleã§åããĻããã¨ããããģãŧãããŧããŧããšãŠã¤ããæŋå
Ĩããžããã čŖŊåãĢãŊãĒãĨãŧãˇã§ãŗãåŽčŖ
ãããã¨ããĻããå ´åããããĢäŊãįåŽã§äŊãããã§ãĒãããæããĻãããå°éåŽļãéããã¨ã¯į´ æ´ããããã¨ã§ãã
大īŧéįēãŽæåãŽåēæēã¯äŊã§ãã
čŖŊåãéįēããĻããã¨ããžãã ããĒããĢã¨ãŖãĻæåããčŖŊåã¨ã¯äŊã§ããīŧ į§ããĄã¯ããšãĻåį¨ããã°ãŠããŧã§ãã ãŗãŧããŖãŗã°ããããŽãŽįĩĻä¸ãæ¯æããã¨ã§ãčĒåãæŦēããã¨ãã§ããžãã ããããåŽéãĢã¯ãčŖŊåãæäžãããĩãŧããšãžãã¯čŖŊåå
¨äŊãč˛ŠåŖ˛ãããããĢãįĩĻä¸ãæ¯æãããžãã

ããããčŖŊåãŽæåãŽãããŽį´į˛ãĢéįēä¸ãŽåēæēã¯äŊã§ããīŧãã¸ããšįŽæ¨ãé¤ãīŧīŧ
- ããã°ãŠããŧã¨ãŗããĨããąãŧãˇã§ãŗãã¨ãã¨ããåŊŧãã¯é常ãč¯ãīŧæåããīŧčŖŊåã¯æŖããåŽčŖ
ãæã¤čŖŊåã ã¨č¨ããžã ã
- ããŽåžãčĻååĄãæĨãĻč¨ããžãããããĄãããããĒãã¯ããã§ã ãžãããžãããããããĢįŠ´ããĒããã¨ãįĸēčĒãããŽã¯č¯ããã¨ã§ããã ããäģĨå¤ãŽå ´åã¯č˛ŠåŖ˛ããžãããããŽåžåŊŧãã¯į§ããĄãæŗåģˇãĢåŧãããčžŧãŋãžããã ãã ããããããã¤ãŗãã§ã¯ãããžããã
- ããã¸ã§ã¯ããŽæåãŽä¸ģãĒåēæēã¯ããĻãŧãļãŧãŽå¸æã§čĩˇããŖããã¨ãŽé åŽã§ã ã ããĄãããåĒããããŧãąããŖãŗã°é¨éãããã°ãåŊŧã¯įĩæãåŊŧãæãã§ããããŽã§ããã¨ã¯ãŠã¤ãĸãŗããĢčĒŦæã§ããžãã ãããããģã¨ããŠãŽå ´åãã¯ãŠã¤ãĸãŗããĢãããįč§ŖããĻãããããã§ãã å¤ããŽããã°ãŠããŧã¯ãããã§ãããããĢãįŽčŗĒä¸ã§ããããæåŗããžããããããį´æĨåŖé ã§čŠąãäēēã¯ãģã¨ããŠããžããã
- 4äŊãŽãŠãããĢã¯éįēãŽãšããŧãã¨åŽšæãããããžã ã ããã¯åŠäžŋæ§ã§ãããããã°ãŠããŽįæ°ã§ã¯ãããžããã éį¨ä¸ãĢHRã¨čŠąãããã¨ãããããį¨ŽéĄãŽããŗããããĩãŧã¸ãĒãŠãį´æãããžãããåŽéãĢã¯ãããĒãã¯ãžã åããĻãããčžããĒãéãããã¸ããšã¯ããã§ãŽįæ´ģãæ°ãĢããžããã ãžãããŗãŧãã¯æĄäģļäģãã§éŠåãĢč¨čŋ°ãããĻããããĻãŖãŗããĻããéŖãŗåēããããåĨãŽäŧį¤žã§äģäēããããã¨ããããã§ã¯ãããžããã
- é常ã ãããŠãŧããŗãšã¯åĒå
åēĻãĒãšãã§ãããĢäŊããĒããžãã å¤ããŽå ´åãæåãŽåēæēãĢãããããžããã čŖŊåã¯å°ãĒãã¨ãäŊãããŽåŊĸã§åããĻããžãããããĻįĨãĢæčŦããžãã
ããŽãããHabrÊã§ãŽJavaãŽãããŠãŧããŗãšãĢéĸããæį¨ŋãčĒãã§ããããĢåæ§ãŽãŗãĄãŗãã襨į¤ēãããĻãããã¨ãĢéŠããĻããžãã

å°éåŽļã¯æŦĄãŽãããĢčŋ°ãšãĻããžãã åŊŧåĨŗã¯å
æ°ãĢåããĻããžãã į§ããĄã¯æēčļŗããĻããžããããšãĻãé čĒŋã§ããã ãããããŗãĄãŗããŧãŋãŧãæĨãĻįããžããã4äēēãŽå°éåŽļãŽčǰããJavaãéĢéã¨čŠäžĄããĻããĒããã¨ã¯é常ãĢéčĻã§ãã ããããååãã¤æēčļŗãŽããããŽã§ããã
æĒãã¨č¨ããžã ãã¸ããšãŽčĻŗįšããããã¯ããã¸ãŧããã¸ããšåēæēãæēãããĻããå ´åã¯ãįĨãĢæčŦããžãīŧ į§ã¯ããšãĻããĒããããĢããšã ãŧãēãĢãåŽį§ãĢčãããšãã ã¨ããįæŗä¸ģįžŠįãĒčãã¯æãŖãĻããžããã ããã¯čĩˇãããžãã-é常ãčŖŊåãĢã¯ã¨ãŠãŧãåĢãžããĻããžãã
æŖããããã°ãŠã ã¨éãããã°ãŠã
äēēã
ã¯éˇãéãããã°ãŠã ãŽæŖãããĢã¤ããĻäēéãĢčãããã¨ãåĻãŗãžããã
īŧč´čĄãĢå°ããīŧčǰãåŊŧãŽããã°ãŠã ãĢãã°ãããã¨æŖį´ãĢč¨ããã¨ãã§ããžããīŧ
īŧããŧãĢãĢã¯å¤ããŽæããããžãīŧ大夿°ã ããã§ããåŊŧãã¯čĒåããĄãŽããã°ãŠã ãå¤ããå°ãĒããæŖããã¨äŋĄããĻããžãã æŖããããã°ãŠã ãŽæĻåŋĩã¯ãéĢéããã°ãŠã ãŽæĻåŋĩã¨å¯žį§°įã§ãã

ãæŖããããã°ãŠã ãã¨ã¯ããĻãŧãļãŧãŽã¨ãŠãŧã襨į¤ēãããĒãããã°ãŠã ã§ãã ã¤ãžããåŽéãĢã¯ã¨ãŠãŧããããžããããĻãŧãļãŧãĢčŖŊåãŽčŗŧå
ĨãæåĻããããã¨ã¯ãããžããã ãéĢéããã°ãŠã ããĢã¯å¯žį§°įãĒįļæŗããããžãããããŠãŧããŗãšãŽåéĄããĒãã¨ãããã¨ã§ã¯ãĒãããĻãŧãļãŧãäŊããåŽčĄãããã¨ããããŗãĢããããŽåéĄãįēįããããã§ã¯ãããžããã
ãæååēæēãĢæčŗããžãããã æåãĢã¯æŠčŊã¨ãããŠãŧããŗãšãŽä¸ĄæšãŽåēæēããããžããããã°ãŠã ã100ããĒį§ãæ
åŊãããŽãéŠåã§ãã įãã¯īŧ ãããå
ãĢé˛ãŋãžãããã
ãæŖããããã°ãŠã ãŽãã°ãŽæ°ã¯é常ãããŖãĻããžããã ããã¯ãããã¸ã§ã¯ããŽæäēēæãŽææ¨ãŽ1ã¤ãĢéããžãããããã°ãŠã ãĢãã°ããĒãã¨ãããã¨ã¯ããã°ããŠããĢãŧãĢãã°ãįģé˛ãããã¨ãčĒ°ãæ°ãĢããĒãã¨ãããã¨ã§ãīŧãĻãŧãļãŧãããĒãããã§ãīŧīŧã ãããŠãŧããŗãšãŽåéĄãĢã¤ããĻãåã芹ã§ãã ãããŠãŧããŗãšãŽåéĄã¯æĸįĨã§ãããããã¯ãéĢéãããã°ãŠã ã§ããã¨č¨ããžãã
īŧčĒįŠēčĻįŠãããäŊæīŧæŖããããã°ãŠã ã¨éĢéããã°ãŠã ãŽä¸Ąæšã§ãããããŽãããŠãŧããŗãšã¨æŠčŊãŽãã°ãåéŋããæšæŗãįĨãããĻããžãã FAQãĢã¯æŦĄãŽãããĒããŽããããžãããããããã¨ãåˇã¤ããžãã ãžãã
ãããããĒãã§ãã ãã ãã
ããã¸ã§ã¯ããŽéįēæŽĩé-ãããã¸ãŽæ˛įˇã W
į§ããããŠãŧããŗãšäŊæĨãĢåå ãããģã¨ããŠããšãĻãŽããã¸ã§ã¯ãã¯ãããã¤ããŽæ¨æēįãĒéįēãã§ãŧãēãįĩãĻããžãã į§ã¯ãã¤ãĻãããããŽãã§ãŧãēãæŦĄãŽãããĢãĒããã¨ãåŽåŧåããžããã

ããã¯ããŠãĄããĒãã¯ã°ãŠãã§ããæéã¯ãã¤ãŗããAããããã¤ãŗããBãããCãããDãããEããĢæĩããžãã į¸Ļåē§æ¨čģ¸ãĢæ˛ŋãŖãĻãããŠãŧããŗãšããããæ¨Ēåē§æ¨čģ¸ãĢæ˛ŋãŖãĻæŊ蹥įãĒãŗãŧããŽč¤éãããããžãã
é常ãããšãĻã¯ãããŖããã¨ãããããŖããã¨åäŊããããããŋã¤ãããĩã¤ã¯ãĒãŗã°ããäēēã
ããå§ãžããžãã į§ããĄã¯čĒčģĸčģãčĒéã§å´ŠããĒããããĢčĒčģĸčģã§čĩ°ããŽã§ãããã¯é常ãĢč¤éã§ãã
æéŠåãéå§ãããåžãããŖããã¨ãããžããžãĒé¨åãŽæ¸ãæããéå§ãããžãã ããŽã°ãĒãŧãŗãžãŧãŗãĢããéįēč
ã¯ãé常ãããããĄã¤ãŠãŧãäŊŋį¨ããĻãæãããĢã˛ãŠãæ¸ããããŗãŧããæ¸ãæããžãã ãããĢãããåæãĢãŗãŧããŽč¤éããčģŊæ¸ããīŧä¸č¯é¨åãæé¤ããããīŧããããŠãŧããŗãšãåä¸ããžãã
ãã¤ãŗããBãã§ãããã¸ã§ã¯ãã¯ãä¸ģčĻŗįããĒãįžããŽããŧã¯ãĢéããžããããã¯ããããŠãŧããŗãšãč¯åĨŊã§ãčŖŊåãŽããšãĻãč¯åĨŊã§ãããããĢčĻããã¨ãã§ãã
ãããĢãéįēč
ãããéĢããããŠãŧããŗãšãåŋ
čĻãĒå ´åã¯ãããæŖįĸēãĒããããĄã¤ãŠãŧãååžããéŠåãĒã¯ãŧã¯ããŧããäŊæããããããæ
éãĢᎠããã¨ãã¤ã¨ããŧãžãŧãŗãĢį§ģåããžãã ããŽãããģãšã§ãåŊŧãã¯įįŖæ§ãŽããã§ãĒããã°åŊŧããããĒãã§ããããã¨ãããã§čĄããžãã
ãããĢåŋ
čĻãĒå ´åã¯ãéįēč
ãįįŖæ§ãŽæåžãŽããŧãģãŗããåžããããĢčŖŊåãã˛ããå§ããã¨ãããã¸ã§ã¯ãã¯ãŦãããžãŧãŗãĢãĒããžãã ããŽãžãŧãŗã§äŊããããã¯æįĸēã§ã¯ãããžããã å°ãĒãã¨ãããŽäŧč°į¨ãŽãŦãˇãããããžã-JPoint / JokerConf / JBreakãĢčĄããčŖŊåéįēč
ãæˇåããĻãä¸åą¤ãŽæ˛įãįš°ãčŋããŗãŧããæ¸ãæšæŗãæããĻãã ããã ååã¨ããĻãčĩ¤ããžãŧãŗãĢã¯ãä¸åą¤ã§įēįããåéĄãįš°ãčŋãããŽãããããã§ãã
ãŦããŧããŽæŽããŽé¨åã§ã¯ãããããŽé åã§é常äŊãčĩˇããŖãĻããããčŠŗããčĒŦæããžãã
ã°ãĒãŧãŗãžãŧãŗ
ã°ãĒãŧãŗãžãŧãŗãŽåæŠäģããĢãŧãã¯ãããĢãŧãããŠãŧãšãĢãããŗãŧããŽããĒã¨ãŽæĻãã§ãã

ããĢãŧãããŠãŧãšã¨ã¯ãæŖįĸēãĒããŧãĢãåŋ
čĻãĒããã¨ãæåŗããžãã ã°ãĒãŧãŗãžãŧãŗãĢã¯ããã¤ããŽį˛žįĨįãĒtrapããããžãã
į§ãŽãæ°ãĢå
Ĩãã¯ããæŖå¸¸ãĢããããĄã¤ãĢããããäŊãããĒããã§ãã

ãShipilevãŽãŦããŧããčããĻãã ãããé常ãŽããããĄã¤ãĢãäŊæããåŋ
čĻãããããŠãããæããĻãããžããã į§ã¯ãããč¨ãŖããã¨ããĒãã ããĒããã°ãĒãŧãŗãžãŧãŗãĢããã¨ããč¨ēæãŽį˛žåēĻã¯ãģã¨ããŠåŊąéŋããžããã ãããĻãä¸čŦįãĢč¨ãã°ãããã¤ã¯ããĩãŧããšãĸããĒãšããŽãŠãŽé¨åãč¨čŋ°ããããįč§ŖãããĢã¯ãããããĄã¤ãĒãŗã°ãåŋ
čĻã§ããæåãĢæ¸ãæããåŋ
čĻããããžãã
ããããĄã¤ãĒãŗã°ã¨č¨ēæ
ããŦãŗããŗãģã°ãŦãã°ãĒãŠãŽããžããžãĒã¯ãŧãĢãĒãããŠãŧããŗãšãŽįˇãŽããã°ãčĻãã¨ãåŊŧã¯ããŽãããĒæãããåŗã襨į¤ēããããŽãããĒããŧãĢãäŊŋį¨ããĻååžãĢčĻããã¨ãã§ããã¨č¨ããžãīŧ

å¤ããŽäēēã¯ãããããŽããŖãŧããčĻãã¨ãããããŠãŧããŗãšã¯é常ãĢéŖãããŽã§ãããã¯ããžãããã¨č¨ãŖãĻããžãã åŽéãããŦãŗããŗãŽčãã¯ãããĢã¤ããĻã§ã¯ãããžããã ããã¯ããĸããĒãąãŧãˇã§ãŗã§äŊãčĩˇããŖãĻããããčŋ
éãĢčŠäžĄãããããŽããĒãį°ĄåãĒæšæŗãããã¨ããäēåŽã§ãã å°ãĒãã¨ã大čĻæ¨ĄãĒãģãĢãŽįč§Ŗãããã°ãã¯ãããĢč¯ããĒããžãã
ããããŖãĻãã°ãĒãŧãŗãžãŧãŗã§ãŽč¨ēæã¯ãé常ãĢåį´ãĒãĸã¤ããĸãĢåēãĨããĻããžãããĸããĒãąãŧãˇã§ãŗãčĻããŽãæããĒãã§ãã ããã ãšãŋãã¯ãŽãĒãŊãŧãšãĢä¸čļŗããĻããããŽã大čĻæ¨ĄãĢįč§Ŗãããã¨ã§ãããæŗ¨æãæã䞥å¤ãŽããããŽã¨ããã§ãĒãããŽãĢã¤ããĻãŽčãããã§ãĢä¸ããĻãããžãã åŽå
¨ãĒãˇãšãã ããããĄã¤ãĒãŗã°ãčĄãŖãã¨ããĻãããããĢããã¯ãŽããå ´æã¯ãã§ãĢæįĸēãĢãĒãŖãĻããžãã

ããããĄã¤ãĒãŗã°
ã°ãĒãŧãŗãžãŧãŗã§ãŽįŽæ¨ã¯ããŠãã§æéãéãããã
大ãžããĢįč§Ŗãããã¨ã§ãã

ãšããŖãã¯ãããŗã°ãĒããåéã§ããį´ æ´ãĒããããĄã¤ãŠã§ãããã°ãĒãŧãŗãžãŧãŗã§æčįãĒãĸã¯ãˇã§ãŗãåŽčĄãããŽãĢååãĒæ
å ąãæäžããžãã
æĒãŽįŽĄįč
ãããããĄã¤ãŠãŧãŽã¤ãŗãšããŧãĢã訹å¯ããĻããĒããããã¯ãˇã§ãŗãããå ´åã¯ãsshãäģããĻjstackãåŽčĄãããtrueãŽã¨ãããåŽčĄã§ããžãã jstackãåŽčĄããžãã įĄį 1; åŽäēããžãããã ããããŽjstackã1,000ååéããéį´ããžãã ããã¯ãããŧãã¤ãããããĄã¤ãŠãŧãĢãĒããčŖŊåãŽäŊãæĒããŽããååãĢįč§Ŗã§ããžãã
ãšããããĻãŠãããæãĢå
ĨããĻãčŖŊåãŽããŽé¨åã§æéãŽ80īŧ
ããčŖŊåãŽããŽé¨åã§20īŧ
ãč˛ģãããĻãããã¨ãĢæčŦããĻããĻããäŊãčĩˇããããĢã¤ããĻãŗãŧããŧãããæ¨æ¸Ŧãããããč¯ãã§ããã2005åš´ãĢVasyaãäŊæãããŠãŗãã ãĢäŊæãããã¯ãŠãšã§äŊããäŋŽæŖããžãã
ãããŠãŧããŗãšæ¸ŦåŽ
ããããĄã¤ãĒãŗã°ãĢéĸéŖããæŦĄãŽį˛žįĨįãĒtrapã¯ããããŠãŧããŗãšãé常ãĢæ¸ŦåŽããåŋ
čĻããããããžãŖããæ¸ŦåŽããåŋ
čĻããĒããã¨ãį¤ēããĻããžãã

į§ã¯ãã¤ããããĢã¤ããĻčããĻããžãã ããããæšåãŽã°ãĒãŧãŗãžãŧãŗã§ã¯ãé常ãããŠãšãžãã¯ãã¤ããš1ãããĄãŧããĢããįŽã§čĻãããžãã é常ãåŊŧãã¯ããããããĒãã¯æĒãããŗãããŧã¯ãæãŖãĻãããäŊã襨į¤ēãããĻããĒããããã¯ä¸ååãĢæ¸ãããĻããããããŠãŧããŗãšãæŖããæ¸ŦåŽããåŋ
čĻããããã¨ããæčã§č¨ããžãããåæãĢããģã¨ããŠããšãĻãŽã¯ãŧã¯ããŧãã§čĻããããŦãŧãããããžãã
éåžŗ
ãĸãŠãĢã¯é常ãĢãˇãŗããĢã§ããã°ãĒãŧãŗãžãŧãŗã§ã¯ãäēį´°ãĒãšããŦãšããšãã§ã大ããĒæŦ éĨã襨į¤ēãããžãã

TwitterãĢå
ŦéãĒãŗã¯ãåŧĩãŖãããããŧãŋããšããĢæĨãĻãĸããĒãąãŧãˇã§ãŗãå°įĄããĢãããããäēēã
ãéããäģŖãããĢãJMeterã§ãšããŦãšããšããæ¸ããŽãĢäŊéąéãč˛ģãããĻãããąãŧãšãčĻãĻããžãããããããĄã¤ãŠãŧã¨ä¸įˇãĢåē§ãŖãĻãčŊãĄãå ´æãįĸēčĒããžãīŧã é常ãŽApache Benchã§ãããååãĢååãĒæŦ éĨãį¤ēããĻããžãã
éįēä¸ãŽä¸ģčĻãĒæŦ éĨãĢéĸããããããŽãããŠãŧããŗãšããŧãŋãããæŠãååžãããģãŠãčŋ
éãĢäŋŽæŖã§ããžãã ããã¯ãįšãĢãããŠãŧããŗãšäŊæĨãč¨įģãããŽãĢåŊšįĢãĄãžãã
ãĩããŠã¤ãēãŽäž
į§ã¯æčŋãJDK 9 Early AccessãäŊŋį¨ããĻãæŦĄãŽãããĢčããžããããããäŊŋį¨ããĻããã¸ã§ã¯ããããĢããããã¨ããåŋ
čĻããããžãã

æ§į¯ä¸ã§ãããŗãŗãã¤ãĢæéã¯2åãã8åãĢåĸããĻããžããįĒįļã ããŽįļæŗã§ã¯ããããæŦåŊãĢå帰ã§ãããã¨ãč¨ŧæãããããĢãããŽãããŽããĄãã¨ããããŗãããŧã¯ãæ¸ãåŋ
čĻããããžããīŧ

ããĄããéããžãã ããĢããĢįšåŽãŽãã°ããããžãããåįžå¯čŊã§ãã ããããĄã¤ãŠãŧã§ã¯ãjavacãŽæåãĒå ´æãĢã¤ãĒããåŧãŗåēããšãŋãã¯ããããã¨ãããããžãã ããŽjavacã§ã¯ããŊãŧãšãŗãŧããčĻã¤ããããããĢ2æŦĄãĢãŧããčĻã¤ãããžãã
æŦĄãŽãããĒå ´åãĢããããåéĄã§ãããã¨ãč¨ŧæããåŋ
čĻããããžããīŧaīŧã¯ãŧã¯ããŧããæĒãã bīŧãããĢį¤ēãããããããĄã¤ãĢã¯ãã¤ãããžããīŧcīŧäēæŦĄãĩã¤ã¯ãĢãæĒãã¨ããįčĢįčå¯ ããããããã§ååã§ãã
æéŠå
åĨãŽį˛žįĨįãĒtrapīŧãææå°æŠãĒæéŠåã¯ããšãĻãŽæĒãŽæ šæēã§ããã

ããĄãããKnutã¯ãžã åĨå¨ã§ãã ããããčǰããããŽããŦãŧãēãæãåēãããŗãĢåŊŧããŠãŽį¨åēĻãããŖãããããã¯ããããžããããĒããĒããããŽããŦãŧãēã¯é常ãčǤãŖãĻčĻããããĻããããã§ãã Knutæ°ãĢããã¨ã99.7īŧ
ãŽãąãŧãšã§ã¯ãææå°æŠãŽæéŠåãããšãĻãŽæĒãŽæ šæēã§ãããäēēã
ã¯æéŠåãåŋ
čĻãĒå ´æãįč§ŖããĻããĒãããã§ãã ããĒããã°ãĒãŧãŗãžãŧãŗãĢããã¨ããããĒãã¯æ°ãĢããžããã ã¨ãĢããįžãããŗãŧããæ¸ãį´ããžãã æåãĢæ¸ãæããå
åŽšãæąēåŽãããĢã¯ãããããĄã¤ãĒãŗã°ãåŋ
čĻã§ãã
ãŠããĒé芹ããããžããīŧ
ååã¨ããĻããããŠãŧããŗãšãŽæšåã¯ãä¸ģãĢãæĒãããŗãŧãããč¯ãããĢæ¸ãæãããã¨ã§ãã ãããããæĒããã¨ãč¯ããã¯ãããį¨åēĻä¸ģčĻŗįãĒåŗã§ãã å°æ°ãŽããã°ãŠããŧãĢå°ããĻãã ãããããĒãã¯ããŽãããĢåŋ
čĻãĒããŽãã¨ãĻãįžããã¨č¨ãã§ãããã ãã1äēēã¯ããããĢäŊãæ¸ãããŽīŧãã¨č¨ãã§ãããã ããĄãããããã¯ããšãĻåŗãããã¨ãã§ããžããããEffective Javaãã¨ããæŦãæ¸ããããĒããJoshua BlochãĢæŠãžãããĻããããŽãåĢããããĒãã¯ãĢæŠãžããããã¨ããããžãã

ãã¨ãã°ãåšæįãĒããŧãŋæ§é ã ã°ããŧããĢs / LinkedList / ArrayList / gããããããã¨ãĒããããŠãŧããŗãšãæšåããããã¸ã§ã¯ããįĨãŖãĻããžãã LinkedListãŽæšãéĢéãĒå ´åããããžãããããããŽå ´åã¯é常ãĢįšæŽã§ãããé常ã¯čįŧã§čĻããã¨ãã§ããžãã
HashMapãäŊŋį¨ã§ããå ´æã§ArrayListãįˇåŊĸæ¤į´ĸããĻãããã¨ãĢįĒįļæ°äģãå ´åããããžãã 1įĩãŽkeySetã¨getãįš°ãčŋããĻãentrySetãĢ夿´ããããbubbleSortãåžĒį°ãããĻãįĒįļ100ä¸åãŽčĻį´ ãŽãŗãŦã¯ãˇã§ãŗããããĢæĨãĻããããĢå¤ããŽæéãč˛ģãããĻããããĒãŠã§ãã
ã°ãĒãŧãŗãžãŧãŗãŽå°č¨

ããããĄã¤ãĒãŗã°ã¯ãæĨã
ãŽéįēãĢåŋ
čĻãĒé¨åã§ãã
į§ãŽčĻŗå¯ãĢããã¨ããããŠãŧããŗãšãŽåéĄãŽ95īŧ
ã¯æåãŽããããĄã¤ãĒãŗã°č¨Ēåã§č§ŖæąēãããĻããžãã ããã¸ã§ã¯ããŽč¤éããĢéĸäŋãĒããįĩé¨ãŽããäēēã
ããŠãŽãããĢããã¸ã§ã¯ããéįēããĻããããã¸ã§ã¯ããŽæåãŽããããŖãŧãĢãäēēã
ãĢčĻããã¨ãåŊŧãã¯ææ
ãŽį¯å˛ãįšãĢãį§ããĄã¯éĻŦéšŋã ãã¨æããžãã ããããŽåéĄãŽ90īŧ
äģĨä¸ãčĒæãĢč§Ŗæąēå¯čŊã§ãããįčĢįãĢã¯ããŗãããåãĢããŖããããããšãã ãŖãããã§ãã
ãã¯ããĢãĢã¨ããšããŧãããĸãŧããã¯ãããã¯ããĢãĢããŖãŦã¯ãŋãŧããžãã¯äģãŽä¸ģčĻãĒæčĄįå°äŊãå ããĻãããįįŖæ§ãåŋ
čĻãĒå ´åã¯ãããã¸ã§ã¯ããĢããããĄã¤ãŠãŧãčĩˇåãããããŽæįĸēãĒæį¤ēããããã¨ãįĸēčĒããĻãã ããã ãŠã¤ããŧã1ã¤ãããŋãŗã1ã¤ããžãã¯APMãåããWebãĸããĒãąãŧãˇã§ãŗãããå ´åã¯ãé常ãĢäžŋåŠã§ãã éįēč
ã¯å¸¸ãĢãããčŋ
éãĢčĄãæšæŗãæãŖãĻããåŋ
čĻããããžãã
į§ãŽįĩé¨ã§ã¯ãéįēč
ãŽæãåããåŊŧããããåš´ãã¨ãŖãĻããåŊŧãã¨ä¸įˇãĢåē§ãŖãĻčŖŊåãããããĄã¤ãĒãŗã°ããã°ããããŠãŧããŗãšäŊæĨãĢ寞ããåŊŧãŽææãįĸēåŽãĢæĸãããã¨ãã§ããžãã å¤ããŽäēēã
ã¯ããããŠãŧããŗãšãéŖãããģãŠããŗãŗããŧããŗãéãĢããžããžãĒį¸äēæĨįļããããĒãŠãé ãŽä¸ãĢããŽãããĒãããã¯ãæãŖãĻããžãã ãããĻãåŊŧãã¯ãžãŖããããããĄã¤ãĒãŗã°ããžãããããã¯éŖããããã§ã-ã¤ãžãããããžã§ãŽã¨ãããããã¯åŋ
čĻã§ã¯ãããžããã ããããä¸åēĻåē§ãŖãĻä¸įˇãĢããã¨ãåŊŧãã¯ããŽãããã¯ãåé¤ããčĒåã§ããããĄã¤ãĢãéå§ããžãã ãããĻãčǰããæĨãåãĢč§Ŗæąēã§ããã¨ãŠãŧãŽ90īŧ
ã¯ãããããŖãŧãĢãčĻããĻæĨãããããäēåãĢäŋŽæŖããžãã
ãããĢããéįēč
ãŽæãåããžãã-ããã¯ãäŧč°ãĢ1000äēēå厚ãããã¨ãæåŗããĻããããã§ã¯ãããžããããšããŧãĢãŧãåēãĻããĻããšããŧããĒå¤čĻŗã§ããããĄã¤ãŠãŧãĢäŊããéãŗå§ããžãã ããã¯æŠčŊããžããã åäŊãį°ãĒããžããããã¸ã§ã¯ããŽįšåŽãŽéįēč
ã¨ä¸įˇãĢåē§ãŖãĻããĢãããĢã§ãããčĄããžãã
ã¤ã¨ããŧãžãŧãŗ
ã¤ã¨ããŧãžãŧãŗã¯ããããŠãŧããŗãšã¨åŧãæããĢãŗãŧããč¤éãĢãĒããã¨ãæåŗããžããããã¯ããããŠãŧããŗãšãä¸ããããĒãå ´åãĢåŽčĄããĒããã¨ãčĄãå ´åã§ãã

į˛žįĨįãĒtrapããããžãã
ããããĄã¤ãĒãŗã°ã¨č¨ēæ
æåãŽãĄãŗãŋãĢããŠããīŧãããããĄã¤ãŠãŧãäŊŋį¨ããĻãæéŠåãéå§ããå ´æã¨æšæŗãįĸēčĒããžããã

éģč˛ãŽãžãŧãŗã§ã¯ãã¨ãŠãŧãŽäžĄæ ŧã䏿ããĻãããã¨ãããããžããįįŖæ§ã¯åžãããžãããäŋåŽæ§ãéįēč
ãŽįĄį ãĒãŠãäģŖãããĢäŊããå¤ąããã¨ãĢãĒããžãã ããããŖãĻãéĢåēĻãĒč¨ēæãåŋ
čĻã¨ããéŠåãĒ夿´ãčĄãåŋ
čĻããããããããĄã¤ãĒãŗã°ã¯č¨ēæãŽä¸é¨ãĢãããžããã ããŗãããŧã¯ãĒãŠããããžãã
é常ãäēēã
ã¯éģč˛ãŽãžãŧãŗãæãä¸ããĻãäŊãæéŠåããšãããčãå§ããã¨ãããããĄã¤ãŠãŧãéããĻãããčĻãīŧ

ãããĻãããã§äŊãæéŠåããžããīŧ java.nioã§æ¸ãæããããæãããããĒãĄãŊããã¯java.lang.Object.waitã§ããã¨č¨ããžããã¤ãžãããĒãŧããŧã¯ããã¯ããåŋ
čĻããããžãã ãžãã¯ãUnsafe.parkãããããããĒãŧããŧã¯ããã¯ããåŋ
čĻããããžã...ãžãã¯SocketInputStream.socketRead0ããžãã¯socketAccept-ãããã¯ãŧã¯ã襨į¤ēããããããããšãĻãᎿĨãĢNettyãĢæ¸ãæããåŋ
čĻããããã¨ãæåŗããžãã įĸēããĢãããŽã´ãã¯ããšãĻJMXãããŽããŽã§ããã3ãæãŽéįēãŽåžããããĢã¤ããĻã¯åžã§įĸēčĒããžãã ãžãã¯ãObject.hashCodeããããžã-æĒãHotSpotããããæéŠåããĒããŖãã¨ããžãããããããããããšãĻãéããĻč¯ãããŽãĢãĒãã¨į´æããčŖŊåã¯č˛Ŧäģģãč˛ ããžãããã
éģč˛ãŽãžãŧãŗãŽæäŊæšæŗã¯į°Ąåã§ããæéŠåããããčĄãįįąãčĒŦæããåŋ
čĻããããžãã ããļãããĒãčĒčēĢãŽããããããĒããŽããã¸ã§ã¯ããããŧã¸ãŖãŧãŽããã§ãããã
æãŖãĻãããã¨ãæãžããīŧ
- æéˇãŽæ°å¤æ¨åŽ
- ããšãĻãŽãĒãŊãŧãšãäŊŋį¨ããåãĢãããã፿ãããã¨ããå§ãããžã ã ãããĻã3ãæãŽéįēãįĩããŖãã¨ãã§ã¯ãĒããããããããĒãã¯įĨãŖãĻããžããããŽãŋãšã¯ãĢã¯3ãæããããžãããã¯ãŧãĢã§ããã
- ãããæãåŽäžĄãĒæšæŗã§ãããããŽæšæŗãå
¨äŊįãĒãããŠãŧããŗãšãæšåããæšæŗã§ãããã¨ãįč§Ŗããåŋ
čĻããããžãã
ãĸã ããŧãĢãŽæŗå
įįŖæ§ãčŠäžĄãããããĢãŋãšã¯ãäžé ŧããã¨ãįĩé¨ãŽæĩ
ãäēēãã˛ãŠãããĄãããĢãĒããžãããĒããĒããé ãŽä¸ãĢéįˇåŊĸãŽäžåéĸäŋãįŊŽããŽã¯é常ãĢéŖããããã§ãã ããããŽéįˇåŊĸäžåéĸäŋãŽ1ã¤ã¯ãĸã ããŧãĢãŽæŗåã§ãããéå¸¸ã¯æŦĄãŽãããĢãĒããžãã
ãĸããĒãąãŧãˇã§ãŗãããã¨ããžãã Aã¨BãŽ2ã¤ãŽįŦįĢããé¨åããããžãããã¨ãã°ãAé¨åã¯70īŧ
ãŽæéã§2åå éããBé¨åã¯30īŧ
ãŽæéã§6åå éããžãã åæŖã§ãããŽã¯ããŽããĄãŽ1ã¤ã ãã§ãããããĢã¯ååãĒãĒãŊãŧãšãããããžããã ãŠãŽãˇãšãã ããĒãŧããŧã¯ããã¯ããžããīŧ åãĢã°ãŠããŖãĢãĢãĢ忏ããĻããæŦĄãŽãã¨ãããããžãã

ããŧãAã¯ãå荿éãŽ70īŧ
ã§æŠčŊããžãã ããŧãAã2åã ãå éããã¨ããäēåŽãĢãããããããããŧãAãæéŠåãããã¨ããå§ãããžãã å
¨äŊįãĒãããŠãŧããŗãšã¸ãŽåŊąéŋã大ãããĒããžãã
ããį§ãããĒãŧãŠãŗãšãŽããã°ãŠããŧãĒããããããããŧãBã6åãĒãŧããŧã¯ããã¯ããã§ãããã į§ãŽéąå ąã§ã¯ãããŽæ°åã¯ããŖã¨č¯ãčĻããã ããīŧãVasyaã¯2åãĢãĒããį§ã¯2åãĢãĒãŖããŽã§ãįĩĻæã3ååĸããåŋ
čĻããããã
ãĸã ããŧãĢãŽæŗåã¯æŦĄãŽãããĢæ¨æ¸Ŧãããžãã

ãšããŧããĸããSãããå ´åãåŽįžŠãĢãããå荿éA + Bãæ°ããæéã§å˛ãŖãå¤ãĢãĒããžãã ããŧãBã¯åããžãžã§ããããããããŠãšBãããããããŧãAã¯S
A忏å°ããžããã ããŽäģé˛ã§ããŧã
Aã¨ããŧã
BãŽį¸å¯žæéãį¤ēãããŧã
Aã¨ããŧã
B㎠2ã¤ãŽčĄ¨č¨æŗãå°å
Ĩããã¨ãæŦĄãŽåŧãĢãĒããžãã
ããŽæ¯įãĢã¯æĨŊããįšæ§ããããžãã ãã¨ãã°ãS
AãįĄéãĢåããå ´åãåļéSīŧ
ããã¯æãããĒãã¨ã§ã¯ãĒããįč§ŖãããããĢčĒåãŽčã§äŊåēĻãæããåŋ
čĻããããžãã åŊŧãã¯ããã§ããŽãããĒã°ãŠããéããĻããĒããį¤ēããžãīŧ
...ãããĻč¨ãīŧå éããé¨åã80īŧ
ãå æãããĸããĒãąãŧãˇã§ãŗãããå ´åãããŽãã¤ãŗããžã§å éããžããããšããŧããĸããã5åãčļ
ããå ´åãããã¯åžãããžããã
ããã¯ãããŧãŋããŧãšããŗããŧãããĒããĢæĨãĻãæŦĄãŽãããĢč¨ãŖãĻãããã¨ãæåŗããžããããŧãŋããŧãšãã¯ãŧã¯ããŧããŽ50īŧ
ãå æããĻãããã¨ãããããžãã 1čĄãŽãŗãŧãã夿´ãããĢįžå¨ãŽãŊãĒãĨãŧãˇã§ãŗãåŊį¤žãŽããŽãĢ夿´ããã¨ããããŠãŧããŗãšã10åãĢãĒããã¨ãäŋč¨ŧããžãã åŊŧãĢäŊã¨č¨ããĒããã°ãĒããĒããŽã§ããīŧ
īŧčĻŗåŽĸããīŧããĢãããã¨īŧ
ãããĢé˛ãã§ãã ããīŧãĸã ããĢãŽæŗåãŽä¸čŦåããããžãã ããããŽį¨čĒãå°ãã˛ãŖããčŋããĻã2ã¤ãŽæ°ããčĄ¨č¨æŗãå°å
Ĩããã¨ãpã¯éĢéåãããAã¯AãŽįšåŽãŽé¨åãåæŖãããæéã§ãããalphaã¯äģãŽããšãĻãŽé¨åãŽéã§ããããŽæŗåã¯æŦĄãŽåŊĸåŧã§č¨čŋ°ã§ããžãã

åéĄã¯ãããããŽãĄãŗããŧãĢäŊãããŽįŠįįæåŗãããã¨ãããã¨ã§ãã é常ãæåãŽãĄãŗããŧã¯
ä¸ĻčĄæ§ã¨åŧã°ã
ãžã ã äģãŽã¨ããã2įĒįŽãŽį¨čĒ-įĢļå-ãįĄčĻããã¨ã襨įžã¯æŦĄãŽãã¨ãæåŗããžãīŧããŧãAãäŊåå éããããä¸čŦįãĒãšããŧããĸããããŠãã ãåžããã
įĢļåã¯ããĸã ããĢãŽæŗåã§ããã¨åãæŧ¸čŋįˇãæäžããäģãŽããšãĻãŽįįŖæ§ã¸ãŽåŊąéŋãčĒŦæããĻããžãã ã¨ããã§ãããŽéĸæ°ãŽã°ãŠããæãã¨ããĸã ããĢãŽæŗåã¨åãæ˛įˇãåžãããžãīŧ
ãã ããååã¨ããĻããģã¨ããŠãŽå ´åãããŽåŊĸåŧãŽãĸã ããŧãĢãŽæŗåžã¯éŠį¨ãããžããã
ãŗããŧãŦãŗãšã¨åŧã°ããããŗãŗããŧããŗãéãŽį¸äēäŊį¨ãč¨čŋ°ããåĨãŽãĄãŗããŧããããĢčŋŊå ãããã¨ãããč¤éãĒæŗåãéŠį¨ãããžãã

ãĸãĢããĄã¨ããŧãŋãč˛ ã§ãĒãå ´åãéŖŊåæŧ¸čŋįˇããĒããã¨ãããããžãã äŊãããŽåšįãŽããŧã¯ããããããŽåžãįįŖæ§ãäŊä¸ãå§ããžãã ãããŠãŧããŗãšãĢéĸããå¤ããŽäēēã
ã¯ãããŽæŗåããĻãããŧãĩãĢãšãąãŧãŠããĒããŖæŗīŧUSLīŧã¨ããĻåŽåŧåãããžã§ãčĒåãŽčã§æããĻããžããã

ããã§ã¯ããæŽéįããããŗãæŗåããŽæĻåŋĩãčĒįļį§åĻįãĒæåŗã§äŊŋį¨ãããĻããžããã¤ãžããįčĢįãĢæŖåŊåãããĻããžãããåæįãĢã¯å°ãåēãããĻããžããã ããã¯ãįĩé¨įč¨ŧæ ãĢãžã§åãļæŗåžã¨ããĻæ¨åŽãããžãã
ãĸãĢããĄã¨ããŧãŋããŧããĢįãããˇãšãã ã¯ãããžããããˇãšãã ãĢãĒãŊãŧãšãčŋŊå ããããäŊããæéŠåãããããå ´åãå¤ããæĒåããããã§ãã ãã¨ãã°ããããããĢããã¯ãåãé¤ããããåĨãŽéããããĢããã¯ãĢãļã¤ãããžããã
ãããŠãŧããŗãšæ¸ŦåŽ
ãããŠãŧããŗãšãæ¸ŦåŽãããĄãŗãŋãĢããŠãããĢã¯ããããšãĻãč¤éã§ãããããšãĻããããŠãŧããŗãšãĢä¸ããåŊąéŋãããããĒããããäŊããčĻã¤ããĻããŗãããŧã¯ãį¤ēããã¨ãįĸēčĒããã ãã§ããã¨ãããžãã

åŽéããããŠãŧããŗãšããšãã¯é常ãĢéĢ䞥ã§ãããįšãĢããšãĻãããšããããã¨ã¯ã§ããžããã ãããŠãŧããŗãšããšãã¯ãæŠčŊããšãīŧãĻãããããšããĒãŠīŧãããã¯ã§åŽčĄãããå ´åã§ãã100ããĒį§äģĨä¸ã§åæ ŧããã¨ããįšã§æŠčŊããšãã¨į°ãĒããžãã ãããŠãŧããŗãšããšãã§ã¯ãįŠäēã¯ãããģãŠãšã ãŧãēã§ã¯ãããžããã 1åäģĨä¸ããããšããĢåæ ŧããæ°æéãããå ´åããããžãã ããã¯ã1ã¤ãŽå¤æ´ãæ°įžæéãŽããˇãŗã§ããšãã§ãããã¨ãæåŗããžãã 1æĨãĢ大éãŽãŗããããčĄãå ´åãããšããˇãšãã ãäģããĻäŊãããŽæšæŗã§ãĸã¯ãģãšãæäžãããĢã¯ãé常ãĢå¤ããŽæŠå¨ãåŋ
čĻã§ãã
ãããŠãŧããŗãšããšããĢã¯ééĸãåŋ
čĻã§ãã
ååã¨ããĻããããŠãŧããŗãšããšãã¯éãã¤ããĒãĄããĒãã¯ãæäžããžãã éå¸¸ãæŠčŊããšãã¯ãPASSããžãã¯ãFAILããã¤ãžããã¤ããĒãĄããĒãã¯ãį¤ēãããããŠãŧããŗãšããšãã¯...ã67ããį¤ēããžãã ãããĢæĒããã¨ãĢã¯ãåŊŧãã¯67ã§ã¯ãĒãã67ããŠãšãã¤ããš5ã¨č¨ããžãã ããã¯ãã¨ããããããšãã¨ãŠãŧã¯
ããŧãŋãč§ŖæããåžãĢãŽãŋæ¤åēããããã¨ãæåŗããžããããšãĻããŠãã§ãé常ãĢįžãããã¨ãįč§ŖããĻããã¨ãã§ãããããã§ã¯ãæãé
ãĢãåŽé¨ãįĻããĻãããã¨ãį¤ēãããŧãŋããããžãã , .
, -
, -
â - , . , , , , , .
â . , , , .
: .

, ÂĢÂģ, , , end-to-end , , -. .
â , , .
, , â .
: â , â .
() , . , â . , â real world . , , ÂĢreal worldÂģ. , . , , . ÂĢreal-worldÂģ, , , , .
â . , , . , , , , , . , , , . , , , , white paper- , , .. .
bull shit , , .
â , , .., ÂĢÂģ , , . , . .
, , bottleneck, .
, , . .
. .
â , . 0, speedup . ( , , 2 ), , , , .
, , .
:

speedup , â speedup . , - , , , , .
, â . .

. - 50 , , 50 , . , , , , , , , â . , , , .
:
:
ããĒããĄ â .
:
, , , ( ), . , .
, . , ÂĢ - Âģ , . , , , , , , â , , . , .
æéŠå
, , . :

ÂĢ , â 100 , a 110. , âĻÂģ - JPoint. , , , , - . , branch prediction - (, , -, ).
, , , . , . , ( , , ):
- , , â N^3, N log N. , , , , , ;
- , , , , , , . , PR , ;
- . , , , -;
- , . , , .
, , , - , , . , , , ..
JVM
: , , , JVM, ? : , ( , JVM).
, , . Google : ÂĢJVM tuning optionsÂģ. :
, - , ÂĢ JVMÂģ.
, . , , , . , , , .
, , parallelStream(), Eexecutor.submit, new Thread, . ? , , , - .
: , , . â , dispatching . staging, , . , , - , - -Hadoop, MapReduce; , . , , 10 000 , .. â , .
åĨãŽäžã : ÂĢ , - Integer Java â , int Âģ.
, ÂĢint- â Âģ , , , . , , : , , ( , - , , , ), JDK - Valhalla.
Modus operandi: â , , , . .
50% , . : , , ÂĢ Âģ .
, 80% ( 83% , , ).
. , , , , , , . . , , , , , . , .
: , . â , , . , .
, , - , , : ÂĢ Âģ!
â .

äžīŧ
- , , , , - . : reflection ;
- ãžãã¯ããŠã¤ããŠãĒãŽãŗãŧãšãčĒãã§ããããĒãã¯ãĄãŊãããįšåĨãĒé åēīŧããŽAPIéŧæ˛ģįã¨åŧãŗãžãīŧã§ããĢããã¨ãããŽãĒãã¸ã§ã¯ããããåãå
Ĩããããįļæ
ãĢ夿ãããã¨ãããããžãã
- ãžãã¯ãããŠã¤ããŧãAPIãããšãĻããĻãŗããŧãããĻããĻãŗããŧãããžãã
- ãžãã¯ãåŽčĄããĻããįšåŽãŽããŧããĻã§ãĸãŽæŠčŊãã¤ãžããŋãŧã˛ããã¨ããįšåŽãŽJDKãŽæŠčŊãæ´ģį¨ãå§ããžãã äŊãŦããĢãŽæéŠåãčĄããžãã
ããããĄã¤ãĒãŗã°ã¨č¨ēæ
é常ãčǰããåļįļããŽãžãŧãŗãĢčĄãįããžãã å¯čŊãĒããšãĻãŽãĒããˇã§ãŗã鏿ãããã¨ãåŊŧãã¯čĒåčĒčēĢãĢč¨ããžãīŧãããã§ã¯ãæŦĄãĢäŊãããšãããčããžããã ãããĻãããĒããéˇãéããããĄã¤ãĢãčĻãã¨ãããĒãã¯č§ŖæąēįãčĻããã¨ãã§ããããã§ãã åŊŧãã¯æąēåŽãéŖãããã¨ãįč§ŖããĻããžããã¤ãžããčĻããŽãĢéˇãæéãããããã¨ãæåŗããžãã

åŽéããŦãããžãŧãŗãããããŗã°ããčŊåã¯ãå¯åé¨åãŽį¸äēäŊį¨ãįč§Ŗãããã¨ããįãžããžãã ãããĻãããŽå ´æãĢã¯ãããŠãŧããŗãšãĸãŧããŖãšããįģå ´ããžãããããã¯įšãĢäģãŽããšãĻãĢå°åŋĩããĻããããã§ã¯ãããžããããä¸åēĻãĢããšãĻãŽãŦã¤ã¤ãŧãæãä¸ãããã¨ãã§ããžãã åŊŧãã¯æŠčĄįžį§äēå
¸ã§ãããé ãŽä¸ãĢã¯ããŽãããĒįļæŗã§åãããã¯ãŽãģããããããžãã åŊŧãã¯éŠį¨ãŽéįãįĨãŖãĻããžãã æãéčĻãĒãŽã¯ãããããŽäēēã
ã¯ãčĻæ
ŖããĒããããããčĻãĻãwhenįļã¨ããĒããããããååŧˇãå§ããäēēã
ã§ãã
äŊãæįĸēã§ãĒãããããĄã¤ãĢã襨į¤ēãããå ´åããã§ã¯ãããŽããããĄã¤ãĢãåé¤ããĻãæ°ããããŧãŋãããããåŽé¨ãããžããããã¨č¨ããžãã ããŧãŋãåéããäŊįŗģįãĒ帰į´įæšæŗãããã§æŠčŊããžãã åŊŧããŽãããĢååŧˇããã¨ãããã¨ã¯ããŗãŧããããĻãŗããŧãããĻStackOverflowãĢæį¨ŋãããããŽãããĒãããŠãŧããŗãšãŽåéĄã¯ãããžããīŧãã¨å°ãããŽã§ã¯ãĒããJohn SkeetãĒãŠãŽäēēã
ãæĨããŽãåž
ãĄãžããåŊŧãã¯ããã§ãŠãŽãããĢãäŊãããåŋ
čĻãããããæããĻãããžãã ååŧˇã¨ã¯ããããĨãĄãŗããčĒãã ããč¨äēå
ãŽåčæįŽãæĸããããåŽé¨ãããããååããįĨčãåŧãåēããããäŊãããŽæšæŗã§æ´įããããããã¨ã§ãã å¤ããŽäēēã
ãããŽãããĢäŧč°ãĢæĨãžãã
äŧč°ãŽãŗã
åĨãŽãĄãŗãŋãĢããŠããããããžãīŧãéˇãéäŧč°ãĢčĄãŖãå ´åããã¤ãããã¤ããŽäŧč°ã§åŊŧãã¯į§ããĄãŽããã¸ã§ã¯ãã5åæšåããããĒãã¯ãäŧããããŽåžããąãããĢč˛ģãããäēįŽå
¨äŊãåãæģããžããã

åŽéãįšåŽãŽãąãŧãšã§ã¯ã1000åãŽäŋåãŽããĄ1ã¤ãŽäŊãŦããĢãŽããĒãã¯ã§ãã æĩˇčžēã§å¤Šæ°ãåž
ã¤ãããčĒåã§čĻã¤ããæšãį°Ąåã§ãã ããã°ãŠããŗã°ããŧããŖãŧã§æãéĸįŊããŽã¯ããããŠãŧããŗãšãĢéĸããč°čĢãŽãģã¨ããŠãäŊãŦããĢãŽããããŗã°ãĢéĸããããŽã ã¨ãããã¨ã§ãã

ååã¨ããĻããããããšãĻãŽãã¨ã¯ãããã¸ã§ã¯ããŽããã°ãŠããŧãåį´ãĒ
ãĸãĢã´ãĒãēã 夿ãäŊŋį¨ããĻããããŠãŧããŗãšãäŊåãæšåã§ããįļæŗã§įēįããžãã ããããåŊŧãã¯äŧč°ã§ãšããŧãHotSpotãäŊãããŽåŊĸã§ãŗãŗãã¤ãĢãããã¨č¨ããããŽã§ãHotSpotã§ããžããŗãŗãã¤ãĢããããããĢããã¸ã§ã¯ããäŋŽæŖããåŋ
čĻããããŽã§ãåŊŧãã¯ä¸ģãĒããŽãčĻéããĻããžã-åŊŧãã¯åŽéãĢčĒåã§čĻã¤ãããã¨ãã§ãã夿´ãæãŖãĻããžãéĢéã§ãīŧããããŠãŧããŗãšãåä¸ããžãã
æžčæ
ãŦãããžãŧãŗãĢããĻãããŽį¨ŽãŽäŊãŦããĢãŽéããčĻã¤ããå ´åãåŽéãĢã¯ãģã¨ããŠãŽå ´åããĒãããŖãã¤ãļãŧãŽåŽčŖ
ãŽéãã§ãīŧä¸č¨ãŽãąãŧãšãŽå¤ãã¯åŽéãĢåããããĢæŠčŊããã¯ãã§ãīŧã ãã ããããããŗã°ã¯ä¸æįãĒãããã§ãããããã¸ã§ã¯ããŽåēį¤ã§ã¯ãããžããã

ååã¨ããĻããããã¯ä¸ãŽãŦã¤ã¤ãŧãŽåéĄãį¤ēããžããä¸ãŽãŦã¤ã¤ãŧã¯åŽéãĢã¯ããåĨå
¨ãĒãããŠãŧããŗãšãĸããĢãæäžããåŋ
čĻãããããã§ãã ããžããžãĒäŊãŦããĢãŽã˛ãŧã ãĢã¤ããĻå ąåããããŦããŧããčããå ´åãåŗæãŽãĸã¯ãˇã§ãŗãŽãŦã¤ãã¨ããĻåãåããĒãã§ãã ããã ããŽãŦããŧãã¯ãé常ãĢãŋã¤ããĢãĒãŖãå ´åãĢãã¤ãåŋ
čĻãĢãĒãå¯čŊæ§ãŽããããããŗã°ãŽãŗãŧããšãæ§į¯ãããŽãĢåŊšįĢãĄãžãã
äž
JDK 9ã§æčŋčĻã¤ããŖãé常ãĢį°ĄåãĒäžããããžãã

JavaãĢã¯ArrayListåããããå
é¨ã¯ãŠãšItrãäģããĻåŽčŖ
ãããå垊åããããžãã ããŽItrã¯ãŠãšã¯ããŠã¤ããŧããĒãŽã§ãItrãŗãŗãšããŠã¯ãŋãŧãåŧãŗåēããã¨ãã§ãããããĢãåæãŽããããbridgeãĄãŊããīŧãããĒãã¯īŧããããžãã åéĄã¯ãItrãåŧãŗåēãã¨ãããŽãĄãŊãããŽãˇã°ãããŖãĢãžã ããŧããããĻããĒãã¯ãŠãšã襨į¤ēããããããããããšãããã¤ãŗãŦã¤ã¤ãŧãį ´æãããã¨ã§ãã
ããŽã¨ãŠãŧã¯ãŠããĢãããžããīŧæéŠåä¸īŧīŧ ããã¯ArrayListãŗãŧããŽã¨ãŠãŧã§ããīŧ ãããããããã ããã¯javacãŗãŧããŽãã°ã§ããīŧ ã¯ããããã§ãã ããããšããããŗãŧãã§ãŽæéŠåãä¸ååã§ããīŧ ããããã¯ãã ãããããŗãŗãã¤ãŠãŧãæ°ãĨãããŗãŗãã¤ãŠãŧã§ãããäŋŽæŖããæšæŗãįč§Ŗãããžã§ãArrayListãĢį´æĨå
Ĩããæšãį°Ąåã§ãã

ããããŖãĻãåŧæ°ãŽãĒãããŽãããĒãŗãŗãšããŠã¯ãŋãŧããããĢäŊæããããã°ã¸ãŽãĒãŗã¯ããããĢæ¸ãčžŧãžããããŽãŗãŗãšããŠã¯ãŋãŧãäŊæãããįįąãĒãŠãį¤ēãããžãã
荿Ŗ
ãŦãããžãŧãŗã鎿éæãä¸ããã¨ãé常ãäēēã
ãããĒããŽã¨ãããĢæĨãĻããããĢéŖãŗčžŧããã¨ããã¨ãããšãĻãčĒåãåˇã¤ããžããã¨č¨ããžãã ãĄãŗãŋãĢããŠããã¯é常ãĢåį´ã§ããåŊŧãã¯ãããã¯ããããĢåãã°į´ æ´ãããã¨æããžãã

Ꮄįŋã§ã¯ããŦãããžãŧãŗã§ã¯
ãåˇããįēįããĒããã¨ãį¤ēãããĻããžãã
äžã¨ããĻīŧį§ã¯åŊŧã常ãĢčĻãĻããžãīŧīŧ
JDKã§ãããŠãŧããŗãšãŽåéĄãčĻã¤ãããžããã JDKã§äŋŽæŖããäģŖãããĢãæŦĄãŽãããĢč¨ããžããã UnsafeãäģããĻããããŗã°ããžããã ãããĻãUnsafeããĒããĒãŖãĻãããsetAccessibleīŧīŧã§ããæŠčŊããĻããĒããã¨ãããããžããã ããããŖãĻãã ãžãããĻã¯ãããžããã ãŦãããžãŧãŗã§äŊæĨããå ´åãæčĄįč˛ åĩãč˛ æ
ããžãã
ããã¯ãäŊãŽãããĢčĄããããŽãããŠãŽãããĒæĄäģļä¸ã§ãããéŠį¨ããããŽããããããã¯ãåŋ
čĻã§ãĒããã¨ãįĸēčĒããæšæŗãããĒããåž
ãŖãĻãããĸãããšããĒãŧã ãŽãã°ãĒãŠã常ãĢææ¸åããžãã
į§ã¯åĻæ Ąã§ãŽåĻæ Ąįæ´ģãŽææĨã§æĸčĄå¸¯ãäŊããããĢæããããžããã į§ã¯äģã§ããčĄãŽéãŽč˛ãĢåŋããĻãããŽæĸčĄå¸¯ãåˇãŽä¸ãžãã¯ä¸ãĢéŠį¨ããã¨ããããŽæį¤ēãæãåēããžãã ããããį§ã¯åŊäģ¤ãŽåĨãŽæŽĩčŊãŽãããĢæãåēããžãīŧããĒããŽååŋãŽčēĢäŊãĢæĸčĄå¸¯ãįŊŽããåžãããĒãã¯ãããĢãŋã¤ã ãšãŋãŗãäģããŽãĄãĸãįŊŽããšãã§ãã
ãŗãŧããĢããŽãããĒããã¯ãäŊæããããŗãĢãįšåŽãŽãšããŧãĒãŧãé ãŽä¸ãĢãããžãããŗãŧããŽã˛ãŠãįŽæãĢæĸčĄå¸¯ãįŊŽãããããĢäŊãããŽįįąã§ãããčĄããããã¨ãæ¸ãåŋ
čĻããããžãããã°ããããŗããŽããŧããšã¯ãããŽãããĒæĄäģļãæēããããå ´åãĢãŽãŋåé¤ã§ããžãã ãããĢãããį§ãžãã¯äģãŽååãããŽãŗãŧããįēčĻããã¨ããĢããããĢåãåã䞥å¤ãããããŠãããįč§ŖããæŠäŧãåžãããžãããžãã¯ãæĸčĄå¸¯ãåé¤ããã¨ãããã¸ã§ã¯ããŽæŽããŽé¨åīŧãžãã¯äģ˛éīŧãæŽēãããžãã
ãŦãããžãŧãŗãŽå°č¨
ããããŗã°ãįĻæĸããžããã ãããĢã¤ããĻčĻåãããŽã¯æããĒãã¨ã§ããã¨ãĢããããããčĄãã§ãããã ãã ããããã¸ã§ã¯ãã§ããããŗã°ãŽæ°ã¨å¯åēĻãįļæãããã¨ã¯ãããŽåįļãĢåŋ
čĻãĒæĄäģļã§ãã
ãĸãããšããĒãŧã ã¨éŖæēããæŠčŊīŧãã¨ãã°ãä¸č¨ãŽãĒãã¸ããĒãĢ夿´ããŗãããããĻãĒãŧããŗãŊãŧãšãĢåãįĩãã§ããå ´åīŧã¯ã鎿įãĒéåŊã大ããĢäŋé˛ããžãã ããããéŠį¨ããå
é¨čŖŊåããĸãããšããĒãŧã ããåå˛ãããģãŠãããããĩããŧããããŽãĢč˛ģį¨ãããããžãã
ããããŽããšãĻãŽåą¤ãįč§ŖããčŊåã¯ããįĢã§ãæŖå¸¸ãĢč¨įˇ´ãããžãããããããããããį¨ŽéĄãŽéčĻãĒ夿´ãåŽčĄã§ãããšããŧã¸ãŗã°į°åĸãåŋ
čĻã§ãã
åĨããŽč¨č
ããããããã§į§ããĄã¯įéå
ĨããŽäŧč°ã§ãã ããŽããšãĻãŽå¯ã§äŊãããããīŧ
įéå
ĨããŽäŧč°ãĢåå ããĻããĻãčŖŊåãŽãĻãŧãļãŧã§ããå ´åãįįŖæ§ãĢæēããäēēã¨ããĻãŽį§ãŽčĻŗįšããã¯ãæŦĄãŽãã¨ãčĄãåŋ
čĻããããžãã
- ãŦãããžãŧãŗãããŽããããŗã°ãŽéŠį¨å¯čŊå¨åēĢãæ´æ°ããžãã ãããã¯ãˇã§ãŗãĢåŽčŖ
ããšããŦãããžãŧãŗãããŽããããŗã°ããããĢæ¸ãå§ããåŋ
čĻã¯ãããžããããããŽčžæ¸ãæ´æ°ããã ãã§ãã
- å
ąį¯č
ãčĻã¤ããéģč˛ã§äŊæĨãããããŽãĸãããŧããĢã¤ããĻ芹ãåããžãã ããæŖįĸēãĢããããĄã¤ãĢãããŗįŖčĻããæšæŗãĒãŠãĢã¤ããĻã
- ãžãã¯ãã¤ã¨ããŧãžãŧãŗããã°ãĒãŧãŗãžãŧãŗãĢåŧãįļãããããĒãã¯ãã¤ãžã įįŖæ§ãŽãããĢč¤éããä礿ãããããĢäŊŋį¨ããĻããã¨æãããĻããããŽã¯ãįžå¨ã§ã¯åãĒãæ¨æēįãĒãŗãŧãč¨čŋ°ãŽįˇ´įŋã§ãã
čŖŊåéįēč
ãŽå ´åīŧ
- ãĻãŧãļãŧãã¤ã¨ããŧãžãŧãŗã§äŊæĨãããããŽãĸãããŧããĢã¤ããĻč°čĢãããŽãĢåŊšįĢãĄãžã-ããããĄã¤ãĢæšæŗãįŖčĻæšæŗãĒãŠã
- ãããĻãäēēã
ãįĩļããééãããŦãããžãŧãŗãããŽããã¯ããã¤ã¨ããŧãžãŧãŗãžãã¯ã°ãĒãŧãŗãžãŧãŗãŽãããããĢããŠãã°ãã䞥å¤ãããããįč§Ŗããžãã
ä¸ģãĒãããŠãŧããŗãšäŊæĨã¯ã°ãĒãŧãŗãžãŧãŗã§čĄããããã¨ãĢæŗ¨æããĻãã ããã ããã¸ã§ã¯ããŽįįŖæ§ãéĢããããŗãĢããžãį°ĄåãĒãã¨ãčĻãĻãã ããã ææ°æ§čŊãåä¸ããžãã ããã¯éåąãĒãŽã§ãčǰãäŧč°ã§ããããĢã¤ããĻ芹ããã¨ã¯ãããžããã åŊŧãã¯é常ãéģč˛ãžãã¯čĩ¤č˛ãŽãžãŧãŗãĢã¤ããĻããĒããĢ芹ããžãã čǰããLinkedListãArrayListãĢčąéįãĢä礿ããæšæŗãĢã¤ããĻãé常ã¯čǰã芹ããĒãã§ãããã
Joker 2017ã§ã¯ãAleksey ShipilevããShenandoahīŧå¯čŊæ§ãŽãããŦããŧã¸ãŗãŦã¯ãŋãŧīŧããŧã2īŧãã¨ããæ°ãããŦããŧããæäžããShenandoahãŽãããĒäŊéGCãį´éĸããĒããã°ãĒããĒãåéĄã¨ãJVMãŦããĢã§äŊãã§ããããĢã¤ããĻ芹ããžãã äŧč°ã¯ãĩãŗã¯ããããĢããĢã¯ã§11æ3æĨã¨4æĨãĢéåŦãããžãã ããã°ãŠã ã¨äģãŽãŦããŧããŽįē襨ã¯
ã¤ããŗããŽå
ŦåŧãĻã§ããĩã¤ããĢãããžã ã