1import{_ as e,c as l,b as a,o as i}from"./app-CNefOTx1.js";const d="/assets/vminit-Cd1qBu09.png",r={};function n(s,t){return i(),l("div",null,t[0]||(t[0]=[a('<h2 id="_5-12-å éåºç¨å¯å¨" tabindex="-1"><a class="header-anchor" href="#_5-12-å éåºç¨å¯å¨"><span>5.12 å éåºç¨å¯å¨</span></a></h2><p>ç»å¤§å¤æ°å¼åäººåæ©å°±è¢«ä¸å¡ç³»ç»é坿
¢è¿ä¸ªé®é¢æç£¨è¿ï¼æ³è±¡ä½ å¼åæ¶åçå¾®è°ä»£ç ï¼é¨ç½²åéå¯éè¦1åéæè
æ°åéæè½éªè¯ï¼ææè¿æ¶åä½ ä¼å»ççææºæ°é»æè
åååäºèä¼å¤©ï¼çå¾
ç³»ç»å¯å¨å®æ¯ï¼å æ¤è½è¯¯å¼åæ¶é´åææå·¥ä½èå¥ã</p><p>è¿ç»´å¤§è§æ¨¡é¨ç½²è¿ç§ç³»ç»ï¼ä¹ä¼å»¶é¿é¨ç½²æ¶é´ï¼å°¤å
¶äºåçåºç¨ï¼é¢ç¹å建å鿝åºç¨ï¼å¸æä¸å¡ç³»ç»åè½å°½å¿«å¯å¨,尽快平稳æä¾æå¡ãä¸å¾å±ç¤ºäºä¸ä¸ªåºç¨å¯å¨çè¿ç¨ï¼ä»å¯å¨å°è½æä¾é«å¹¶åæå¡ï¼éè¦ä¸ç³»åè¿ç¨</p><p><img src="'+d+'" alt=""></p><table><thead><tr><th style="text-align:left;">è¿ç¨</th><th style="text-align:left;">æè¿°</th></tr></thead><tbody><tr><td style="text-align:left;">Javaå½ä»¤</td><td style="text-align:left;">éè¿Javaå½ä»¤å建JVMï¼æ¤æ¶è°ç¨çæ¯æ¬å°soæè
dillæä»¶</td></tr><tr><td style="text-align:left;">JVMåå§å</td><td style="text-align:left;">ç³è¯·å 空é´ï¼åå§ååå¾åæ¶å¨ï¼JITçã</td></tr><tr><td style="text-align:left;">ç±»å è½½</td><td style="text-align:left;">å è½½Bootstrap ClassLoaderï¼å¯å¨JDKæ ¸å¿ç±»ï¼ç¶åå¯å¨åºç¨ç¨åºçClassLoaderï¼å è½½åºç¨ç¨åºçç±»ï¼ç¬¬ä¸æ¹ç±»ç</td></tr><tr><td style="text-align:left;">JITä¼å</td><td style="text-align:left;">åé¶æ®µä¼ååºç¨ãC1ç¼è¯å¨æåèç 转å为æ¬å°æºå¨ç ï¼åç»JITå¯¹æ¹æ³è°ç¨ï¼å¾ªç¯çæä½è®¡æ°ç¡®è®¤éç¹ä¼åæ¹æ³ï¼å¹¶ä½¿ç¨C4å®ç°å
èçä¼åææ®µã</td></tr><tr><td style="text-align:left;">å¼åæ¡æ¶åå§å</td><td style="text-align:left;">éç¨çå¼åæ¡æ¶ï¼å¦Spring Bootï¼Solonçï¼éè¦ä¸ä¸ªåå§åè¿ç¨ï¼æ¯å¦æ«æææç±»ç¡®å®Webæå¡æ¥å£</td></tr><tr><td style="text-align:left;">ç¬¬ä¸æ¹å
åå§å</td><td style="text-align:left;">æ¯å¦æ°æ®åºè¿æ¥æ± åå§åï¼å¾®æå¡æ¡æ¶éè¿APIå®ä¹çæå®ç°ç±»çã</td></tr><tr><td style="text-align:left;">åºç¨åå§å</td><td style="text-align:left;">åºç¨èªå·±åå§åçè¿ç¨ï¼æ¯å¦å建ä¸ä¸ªç¼åï¼æè
Nettyçæå¡å¨ç«¯å£çå¬ç</td></tr><tr><td style="text-align:left;">é«å¹¶åæå¡</td><td style="text-align:left;">æ¤é¶æ®µåºç¨ç¨åºæè½æé«å¹¶åæå¡</td></tr></tbody></table><p>å¦ä½å éä¸å¡ç³»ç»å¯å¨åå¯èå¿«éé«å¹¶åæå¡ï¼é对ä¸å¾çåä¸ªé¶æ®µï¼æä¸åçè§£å³æ¹æ¡ï¼æç
§ä¼å
级æåï¼æå
¥è¾å°èè·å¾æå¤§æ¶çï¼</p><ul><li>è½å¦é¿å
éå¯ï¼æ¯å¦éè¿é
ç½®ï¼è§å弿æ¥è°æ´ç»å¸¸ååçä¸å¡é»è¾</li><li>æ¯å¦è½éç¨çå è½½ææ¯æ¥é¿å
JVMéå¯ï¼æ¯å¦ClassLoaderææ¯å è½½ç»å¸¸ååçä¸å¡æ¨¡åï¼JVMåºå±çç±»æ¿æ¢ææ¯(ç±»éå®ä¹Redefineï¼ç±»æ¿æ¢DECVM)</li><li>å®¡æ¥æ¡æ¶ï¼æ¯å¦å¯å¨è¿ç¨å è½½è¿å¤å
å®¹ï¼æ¯å¦Spring Bootå¯å¨æ¶åï¼ä¼æ«æç±»è·¯å¾ãå¯ä»¥éå®å
¶æ«æçç¹å®å
èä¸éè¦æ«æææå
ãä¸äºè½»éçº§æ¡æ¶Jfinalï¼Solon对å¯å¨åäºä¸é¨ä¼åï¼æè¾å¿«çå¯å¨é度</li><li>审æ¥ä¾èµç¬¬ä¸æ¹å
ï¼æ¯å¦åå§åè¾æ
¢ãæ¯å¦æ°æ®åºè¿æ¥æ± ï¼å¦æé
ç½®åå§åè¿æ¥ä¸ªæ°è¾å¤§ï¼ä¼å½±åå¯å¨ãå¼åç¯å¢å¯ä»¥è®¾ç½®ä¸ä¸ªè¾å°çæ°</li><li>审æ¥åºç¨ï¼æ¯å¦æå è½½è¾æ
¢çå¯¹è±¡ï¼æ¯å¦åºç¨ä¸ï¼æä¸ªç¼åç±»éè¦å è½½æææ°æ®ãå»ºè®®æ¹ææå è½½ï¼æè
åªå è½½çæ°æ®ã</li><li>ä¼åJITï¼æ¯å¦è®¾ç½®<code>-XX:TieredStopAtLevel=1</code> éå¶JIT æ¶èCPUåæè´ä¼åï¼ä½¿å¾ç³»ç»è½è¾å¿«å¯å¨åæä¾æå¡ãæ¤æ¯è¾éåéè¦ç»å¸¸éå¯åºç¨ï¼æ¯å¦ç¹å®çå¾®æå¡æè
Serverless</li><li>ä¼åJVMï¼æ¯å¦å¼å¯ç±»å
±äº«ãé¿å
å è½½Classèæ¶ãJDK17å使ç¨<code>âXX:SharedArchiveFile</code></li><li>è§æµå¯å¨åå°æµé稳å®è¿æ®µæ¶é´JVMæ§è½ï¼æ¯å¦éè¿VisualVMæ¥è·å¾CPUéæ ·ï¼å
åéç¨ï¼æ¾å°ä¸å¿
è¦çèæ¶ä»¥åå¹¶åç¶é¢ï¼ç产系ç»ç³»ç»åå¯å¨åï¼å¯è½æè¾å¤§æµéç访é®)ã æ¯å¦Nettyå¯å¨åNettyç³è¯·è¾å¤§å
ååä½ä¸ºç¼å.</li><li>éç¨AOTææ¯ï¼é¢å
ç¼è¯Javaç¨åºä¸ºäºè¿å¶ï¼é¿å
äºJVMçç±»å è½½ï¼JITçä¼åç¼è¯è¿ç¨ã使¯éç¨AOTææ¯ï¼å
¶ä¸æ¯æå¨æç±»å è½½ååèç çï¼å¯è½è¦è°æ´åºç¨é
ç½®åç¬¬ä¸æ¹å
ï¼æäºç¬¬ä¸æ¹å
䏿¯æAOTï¼ï¼é£é©è¾å¤§ãé¤éä½ çåºç¨åå¼å§å°±æ¯æç
§AOTæ¥è§åçã</li></ul><p>æäºæç« éæå°è®¾ç½®JMVè¾å°çå å
åè½å¸®å©JMVå¯å¨ï¼è¿æ¯éçï¼å 为JVMå¯å¨æ¶ååæä½ç³»ç»ç³è¯·å å
åï¼æä½ç³»ç»åé
çæ¯èæå
åï¼åªæå¨ä½¿ç¨çæ¶åæä¼åé
ç©çå
åã</p><p>å¼å¾æ³¨æçæ¯ï¼æä¿©ä¸ªéè¦å
³æ³¨çJVMææ¯ï¼è½ç¶è¿ææ¶æªè½åå¹¶å°OpeneJDKï¼æäºåä¸JDKå·²ç»æ¯æï¼ï¼ä½ä¸çå·²ç»éªè¯å
¶è½æå¤§æé«ç³»ç»å¯å¨åè¿è¡é度ï¼ä»å ä¹ä¸æ¥å°ä½ä½¿å¾åºç¨è½ç«å³æé«é«å¹¶å访é®ã</p><ul><li>éç¨æ¯æLeyden ï¼å°JITä¼ååç代ç ç¼åä¸ºåæ¡£æä»¶ï¼å½JVM忬¡å¯å¨æ¶åï¼JITå¯ä»¥ç´æ¥å 载使ç¨ã</li><li>éç¨ CRaC ï¼ç±»ä¼¼éåå¿«ç
§ææ¯ï¼æ¯æä¿åJVMçå¿«ç
§ï¼ä¸æ¬¡éå¯å¯ä»¥ç´æ¥ä»æ£æ¥ç¹æ¢å¤ãå
·å¤æå¿«çå¯å¨åè¿è¡é度ãCRaCæ¶åå°å¿«ç
§ä¿å忢å¤ï¼éè¦åºç¨ç¨åºåç¹å®çåæå½æ°ï¼æ¯å¦ç½ç»æå¡ç¨åºï¼å¨ä½¿ç¨CRacæ¢å¤åï¼éè¦éå¯çå¬ç«¯å£ã</li></ul><p>éè¦è¯´æçæ¯ï¼OpenJDKé对JVMå¯å¨æ
¢ï¼é¢çæ¶é´é¿çé®é¢ï¼èªä»JDK5以æ¥å°±æåç§è§£å³åæ³ï¼ç®åçæ¥Leyden å CRaC ææ¯æ¯æéåçãå¦ä¸æ¯äºèä¸çä¸ç»å®éªæ°æ®ï¼ä¸ä¸ªåºäºSpring Bootçåºç¨</p><table><thead><tr><th style="text-align:left;">åºæ¯</th><th style="text-align:left;">å¯å¨å»¶è¿</th><th style="text-align:left;">å
åå ç¨</th></tr></thead><tbody><tr><td style="text-align:left;">ä¼ ç»åä½åºç¨</td><td style="text-align:left;">3000ms+</td><td style="text-align:left;">1.5GB+</td></tr><tr><td style="text-align:left;">CRaCåºç¡å¾®æå¡</td><td style="text-align:left;">300ms</td><td style="text-align:left;">300MB</td></tr><tr><td style="text-align:left;">Leyden+CRaCåºç¨</td><td style="text-align:left;">30ms</td><td style="text-align:left;">50MB</td></tr></tbody></table><blockquote><p>æ°æ®æ¥èª https://blog.csdn.net/m0_65465065/article/details/149158057</p></blockquote><p>æ¬èç建议å
å«è¾å¤åºç¡ç¥è¯ï¼å¦ä¸æ¯å¨æ¬ä¹¦æå°</p><table><thead><tr><th style="text-align:left;">æ¯è¯</th><th style="text-align:left;">å¼ç¨ç« è</th></tr></thead><tbody><tr><td style="text-align:left;">é
ç½®</td><td style="text-align:left;">8 é«å¯ç¨ å¯é
置系ç»</td></tr><tr><td style="text-align:left;">èæ¬å¼æ</td><td style="text-align:left;">
18 é«å¯ç¨ 使ç¨èæ¬å¼æ&è§å弿</td></tr><tr><td style="text-align:left;">çå è½½</td><td style="text-align:left;">8 é«å¯ç¨ç« è çé¨ç½²</td></tr><tr><td style="text-align:left;">çæ°æ®</td><td style="text-align:left;">5 æ°æ®å·çå¤ç</td></tr><tr><td style="text-align:left;">TieredStopAtLevel</td><td style="text-align:left;">6.3 JIT</td></tr><tr><td style="text-align:left;">VisualVM</td><td style="text-align:left;">4.4 è§å¯åæºç³»ç»åè¿è¡</td></tr><tr><td style="text-align:left;">AOT</td><td style="text-align:left;">5.19 AOT</td></tr><tr><td style="text-align:left;">JIT</td><td style="text-align:left;">6.3 JIT</td></tr><tr><td style="text-align:left;">å¯¹è±¡æ± </td><td style="text-align:left;">5.2 å¯¹è±¡æ± </td></tr></tbody></table><p>齿¯</p>',16)]))}const p=e(r,[["render",n],["__file","index.html.vue"]]),y=JSON.parse('{"path":"/article/performance/policy_codestart/","title":"æ§è½ä¼å-å éåºç¨å¯å¨","lang":"en-US","frontmatter":{"title":"æ§è½ä¼å-å éåºç¨å¯å¨","tags":["æ§è½","æ°ä¹¦"],"createTime":"2026/08/21 13:06:15","permalink":"/article/performance/policy_codestart/","description":"5.12 å éåºç¨å¯å¨ ç»å¤§å¤æ°å¼åäººåæ©å°±è¢«ä¸å¡ç³»ç»é坿
¢è¿ä¸ªé®é¢æç£¨è¿ï¼æ³è±¡ä½ å¼åæ¶åçå¾®è°ä»£ç ï¼é¨ç½²åéå¯éè¦1åéæè
æ°åéæè½éªè¯ï¼ææè¿æ¶åä½ ä¼å»ççææºæ°é»æè
åååäºèä¼å¤©ï¼çå¾
ç³»ç»å¯å¨å®æ¯ï¼å æ¤è½è¯¯å¼åæ¶é´åææå·¥ä½èå¥ã è¿ç»´å¤§è§æ¨¡é¨ç½²è¿ç§ç³»ç»ï¼ä¹ä¼å»¶é¿é¨ç½²æ¶é´ï¼å°¤å
¶äºåçåºç¨ï¼é¢ç¹å建å鿝åºç¨ï¼å¸æä¸å¡ç³»ç»åè½å°½å¿«å¯å¨,尽快平稳...","head":[["meta",{"property":"og:url","content":"http://ibeetl.com/article/performance/policy_codestart/"}],["meta",{"property":"og:site_name","content":"é²å¤§èµ"}],["meta",{"property":"og:title","content":"æ§è½ä¼å-å éåºç¨å¯å¨"}],["meta",{"property":"og:description","content":"5.12 å éåºç¨å¯å¨ ç»å¤§å¤æ°å¼åäººåæ©å°±è¢«ä¸å¡ç³»ç»é坿
¢è¿ä¸ªé®é¢æç£¨è¿ï¼æ³è±¡ä½ å¼åæ¶åçå¾®è°ä»£ç ï¼é¨ç½²åéå¯éè¦1åéæè
æ°åéæè½éªè¯ï¼ææè¿æ¶åä½ ä¼å»ççææºæ°é»æè
åååäºèä¼å¤©ï¼çå¾
ç³»ç»å¯å¨å®æ¯ï¼å æ¤è½è¯¯å¼åæ¶é´åææå·¥ä½èå¥ã è¿ç»´å¤§è§æ¨¡é¨ç½²è¿ç§ç³»ç»ï¼ä¹ä¼å»¶é¿é¨ç½²æ¶é´ï¼å°¤å
¶äºåçåºç¨ï¼é¢ç¹å建å鿝åºç¨ï¼å¸æä¸å¡ç³»ç»åè½å°½å¿«å¯å¨,尽快平稳..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2026-08-24T05:21:51.000Z"}],["meta",{"property":"article:tag","content":"æ§è½"}],["meta",{"property":"article:tag","content":"æ°ä¹¦"}],["meta",{"property":"article:modified_time","content":"2026-08-24T05:21:51.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"æ§è½ä¼å-å éåºç¨å¯å¨\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-08-24T05:21:51.000Z\\",\\"author\\":[]}"]]},"headers":[],"readingTime":{"minutes":5.24,"words":1571},"git":{"updatedTime":1787548911000,"contributors":[{"name":"lijiazhi","username":"lijiazhi","email":"[email protected]","commits":2,"avatar":"https://gravatar.com/avatar/1b5114831459724ad4acc394423b4b48ecfa4a7e0659fbe07a0ce5181a1050a7?d=retro"}]},"autoDesc":true,"filePathRelative":"article/æ§è½/coldstart.md","categoryList":[{"id":"92a2b5","sort":10000,"name":"article"},{"id":"afdb50","sort":10004,"name":"æ§è½"}]}');export{p as comp,y as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.