Code Cache相關知識總結

codecache代碼緩存區,主要存放JIT所編譯的代碼,同時還有Java所使用的本地方法代碼也會存儲在codecache中.不一樣的jvm、不一樣的啓動方式codecache的默認值大小也不盡相同。java

JVM 版本和啓動方式緩存

默認 codeCache大小oracle

32-bit client, Java 8app

32 MBjvm

32-bit server, Java 8*post

48M優化

32-bit server with Tiered Compilation, Java 8spa

240 MBcode

64-bit server, Java 8*orm

48M

64-bit server with Tiered Compilation, Java 8

240 MB

32-bit client, Java 7

32 MB

32-bit server, Java 7

48 MB

32-bit server with Tiered Compilation, Java 7

96 MB

64-bit server, Java 7

48 MB

64-bit server with Tiered Compilation, Java 7

96 MB

* jdk8中server模式默認採用分層編譯方式,若是須要關閉分層編譯,須要加上啓動參數-XX:-TieredCompilation

 

相關參數

-XX:ReservedCodeCacheSize設置codeCache的size大小,-XX:+UseCodeCacheFlushing啓用code cache的回收機制。

因爲JIT是隨着代碼被調用的次數達到CompileThreshold以後進行的,所以,codecache使用也會隨之增長,常見的問題就是,隨着時間的推移應用佔用CPU會隨之增高,請求相應變慢等問題,這時就須要考慮codecache的問題了。

 

相關優化請參考:

https://docs.oracle.com/javase/8/embedded/develop-apps-platforms/codecache.htm

http://blog.leanote.com/post/zenglingshu/%E4%B8%80%E4%B8%AART%E4%B8%8B%E9%99%8D%E7%9A%84%E5%A5%87%E6%80%AACase%5B%E8%BD%AC%5D

相關文章
相關標籤/搜索