Minor question about Segmented Code Cache (http://openjdk.java.net/jeps/197)(关于分段代码缓存(http://openjdk.java.net/jeps/197))的次要问题)
问题描述
我看到这个JEP(http://openjdk.java.net/jeps/197)介绍了三种代码缓存。
对我来说最明显的是-XX:NonNMethodCodeHeapSize
。这是一个处理JVM内部数据的应用程序。
NonProfiledCodeHeapSize
和ProfiledCodeHeapSize
有什么区别。该文件说:
分层编译还引入了一种新的编译代码类型:检测的编译代码(分析代码)。
我的理解是,这里的指令插入是指带有计数器的,所以按照某种逻辑来假设这真的是编译的代码?另一个是C2
?
推荐答案
在分层编译中,配置代码表示收集执行统计信息(计数器和类型信息)的即时编译方法,这些方法可在以后用于在不同层上重新编译。
非配置代码不仅是C2代码。它还包括本机方法的已编译包装器,以及没有执行统计信息(Tier 1)的由c1编译的方法,例如不会从重新编译中受益的简单方法,如getters/setters。
参见codeBlob.hpp
:
// CodeBlob Types
// Used in the CodeCache to assign CodeBlobs to different CodeHeaps
struct CodeBlobType {
enum {
MethodNonProfiled = 0, // Execution level 1 and 4 (non-profiled) nmethods (including native nmethods)
MethodProfiled = 1, // Execution level 2 and 3 (profiled) nmethods
NonNMethod = 2, // Non-nmethods like Buffers, Adapters and Runtime Stubs
All = 3, // All types (No code cache segmentation)
NumTypes = 4 // Number of CodeBlobTypes
};
};
这篇关于关于分段代码缓存(http://openjdk.java.net/jeps/197))的次要问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:关于分段代码缓存(http://openjdk.java.net/jeps/197))的次
基础教程推荐
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- 降序排序:Java Map 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01