代码缓存区
代码缓存区是一块存储编译后代码的区域
控制代码缓存区的配置有如下几个:
属性 | 作用 | 默认值 |
---|---|---|
-XX:InitialCodeCacheSize | 设置代码缓存区的初始大小 ,以java -XX:+PrintFlagsFinal|grep InitialCodeCacheSize 结果为准 |
不同操作系统、不同编译器的值不同 |
-XX:ReservedCodeCacheSize | 设置代码缓存区大小,以java -XX:+PrintFlagsFinal|grep ReservedCodeCacheSize 结果为准 |
不同版本不同,JDK8 64位、JDK11 64位都是240M |
-XX:-PrintCodeCache | 在JVM停止时打印代码缓存区的使用情况 | 关闭 |
-XX:-PrintCodeCacheOnCompilation | 每当方法被编译后,就打印一次代码缓存区的使用情况 | 关闭 |
-XX:+UseCodeCacheFlushing | 代码缓存区即将耗尽,尝试回收一些早期编译、很久未被调用的方法 | 打开 |
-XX:+SegmentedCodeCache | 是否使用分段的代码缓存区,默认关闭,表示使用整体的代码缓存区 | 关闭 |
我们来做一个实验,我们在JVM默