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

相关文章
相关标签/搜索