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))的次


基础教程推荐
- 存储 20 位数字的数据类型 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 修改 void 函数的输入参数,然后读取 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01