- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行 Oracle Java 8 JVM(服务器,不是客户端或嵌入式),并且启用了 ReserveCodeCacheSize=128M 并启用了 UseCodeCacheFlushing。几天后,Codecache 的利用率从 93% 快速下降到 80%。我假设我目睹了 Codecache 刷新,但令人惊讶的是刷新后的大小更接近 100% 已满而不是 50% 已满。
JVM 如何决定要刷新多少 Codecache?
This Oracle Java 8 page描述了该选项,但没有量化刷新的 Codecache:
Enables flushing of the code cache before shutting down the compiler. This option is enabled by default. To disable flushing of the code cache before shutting down the compiler, specify -XX:-UseCodeCacheFlushing.
There is a JVM option UseCodeCacheFlushing that can be used to control the flushing of the Codecache. With this option enabled JVM invokes an emergency flushing that discards older half of the compiled code(nmethods) to make space available in the CodeCache.
可以想象,较早的一半编译代码仅占整个 Codecache 的 20%,但另一种可能的解释是上述博文不准确。
最佳答案
“Older half” 的字面意思并不是所有 nmethods 的 50%。 HotSpot 扫描编译代码的逻辑有点复杂;最好的解释是它的source code ,但我将在下面给出一个简短的总结。
如果至少满足以下条件之一,则调用清理器:
ReservedCodeCacheSize
的 1%)。当清理器运行时,它总是释放所有僵尸方法,即卸载、去优化或重新编译的没有激活的方法。
此外,如果UseCodeCacheFlushing
启用后,它会释放足够冷的 Activity 方法。冷法确定如下:
2 * (ReservedCodeCacheSize / 1MB)
.-XX:NmethodSweepActivity
选项(默认为 10)。较大的是NmethodSweepActivity
Code Cache 空闲比率越小,编译方法被清除得越积极。 Here是公式。因此,没有确切的数字有多少编译方法被清除。这是在运行时计算的,具体取决于保留的代码缓存大小、可用空间量、僵尸方法的数量、冷方法的数量以及 JIT 人体工程学选项,例如 NmethodSweepActivity
.
关于java - Oracle JVM 8 : when Codecache flushing is enabled, 刷新了多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38173592/
感觉代码越少越好,所以想“优化”如何同时启用多个项目: button1.enabled = YES; button2.enabled = YES; textField.enabled = YES; .
我正在尝试禁用和禁用存储在 List 中的 Component。当我尝试这样做时,出现以下错误: 'Component' does not contain a definition for 'enab
我正在努力使用执行器启用 Spring Boot 运行状况检查。由于我们的应用程序依赖于 Spring 1.5.21,因此我必须使用执行器 1.5.21 版本。我在他们的online document
我有一个项目结构如下:.Persistence -> .Repo -> .Services -> .Controllers -> MVC3 App。 每一层都有一个带有接口(interface)的相应
解决方法: 在cmakelists.txt中添加设置: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fms-extensions") 问题解决 下面是cmakel
我对 powershell 知之甚少。 我想知道是否有人可以指出我需要了解什么来解释以下内容: PS C:\Users\username> (Get-Aduser -Filter 'Enabled -
我有一个运行 Ubuntu 16.04.1x64 的 DO droplet,我正在尝试运行 IPFS作为系统服务。我已经按照说明创建了一个用户“connor”并安装了 IPFS here .我将服务存
我尝试制作 Android WebRTC 应用 我在 Android Oreo 和 Pie 上测试过,该应用运行良好。 但是在 Android Lollipop 和 Marshmallow 上,当我调
我有一个简单的网站,其中一个 aspx 页面 ( Test.aspx ) 显示 Roles.Enabled在 Web.config 中设置为 false 的值(属性 roleManager@enabl
在 Spring Boot 中,对于分段上传,我看到许多教程站点都建议具有以下属性之一:spring.http.multipart.enabled=false或者spring.servlet.mult
我有一个 PHP 库,它使用许多正则表达式,其中包括用于多字节字符串的 \P 表达式,例如 ((((?:\P{M}\p{M}*)+?)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?
如果“错误运行应用程序:Instant Run 需要启用'工具 | Android | 启用 ADB 集成'。” 使用最新的 Gradle 插件和最新的 Android SDK 时出现问题。您可以使用
在尝试了一些选项后,我仍然没有得到满意的结果: 使用的Javascript库是FullpageJS ( http://alvarotrigo.com/fullPage/ ) Fullpage.js 使
默认情况下,Kafka Consumer 会定期提交当前偏移量,除非通过禁用 enable.auto.commit 将其关闭。 .根据文档,您将负责自己提交偏移量。所以当我想要 手册 控制,这似乎是要
我有一个 AWS SAM 应用程序,其函数包含 schedule 事件,并且我希望有条件地启用/禁用根据参数值为事件生成的 EventBridge 规则。 为此,我在 template.yaml 中执
似乎 servlet 的 web.xml 有一个元素叫做 false 可以像这样放在servelt定义中 example com.example.TestServlet 10
我们有 Aerospike 服务器版本 3.8.3(支持 LDT) 我们遇到以下异常 - 2018-08-01 16:11:31,558 1320573 [task-scheduler-3] ERRO
我有一个运行 Windows 10 Pro 的 Windows VM,我正在尝试安装运行 WSL2 的 Docker。 但是,我遇到了下面的错误,我可以确认 虚拟机平台 Windows 功能 已经启用
我开始学习 Javafx,并且偶然发现了这个“奇怪”的功能。我制作了一个带有两个按钮的简单窗口。当我按下其中一个按钮时,会出现一条蓝色笔画并一直保留在那里,直到我按下另一个按钮。除了知道最后按下的是哪
我在使用 C++ 模板时遇到了这段使用 SFINAE 使用 std::enable_if 的代码.这段代码我面临两个问题。 #include #include enum class Type :
我是一名优秀的程序员,十分优秀!