-XX:MinHeapFreeRatio 和 -XX:MaxHeapFreeRatio 的目的是什么

2024-05-07

请告诉我这些选项的目的。 谷歌搜索后我想: MinHeapFreeRatio 表示“GC 后将确保堆内存中指定的最小空间百分比是可用的” 和 MaxHeapFreeRatio告诉“GC后堆内存中的空闲空间不会超过指定的百分比”[如果空闲内存超过指定的百分比,这些内存将返回给操作系统]

当我尝试这些选项时,两者的值都为 10,即使有超过 80% 的可用堆内存,它也不会释放回操作系统。

Details:

Java HotSpot(TM) 64 位服务器 VM(1.5.0_15-b04,混合模式) ParallelGC(也称为吞吐量收集器,是服务器类 VM 中的默认收集器) 我指定 -Xms50M 和 -Xmx1000M 作为 jvm 参数 操作系统:Windows 7 Professional(8 GB内存64位操作系统)

注意:我也刚刚尝试使用 SerialGC,那些最小和最大堆空闲比率选项被忽略。


关于参数 -XX:MinHeapFreeRatio 和 -XX:MaxHeapFreeRatio 参数的最佳解释可以在 oracle 垃圾文档中找到:

https://docs.oracle.com/javase/10/gctuning/factors-affecting-garbage-collection-performance.htm https://docs.oracle.com/javase/10/gctuning/factors-affecting-garbage-collection-performance.htm

-XX:MinHeapFreeRatio=40
-XX:MaxHeapFreeRatio=70

使用这些选项,如果一代中的可用空间百分比低于 40%,则该代将扩展以保持 40% 的可用空间,直至该代允许的最大大小。同样,如果可用空间超过 70%,则该代会收缩,从而只有 70% 的空间是可用的,具体取决于该代的最小大小。

我将它与G1GC结合起来是这样的:

-XX:+UseG1GC -XX:MinHeapFreeRatio=2 -XX:MaxHeapFreeRatio=10

得到这个结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

-XX:MinHeapFreeRatio 和 -XX:MaxHeapFreeRatio 的目的是什么 的相关文章

随机推荐

  • 如何在 JTextArea 中查找光标位置

    有人会帮我找到 JTextArea 中以像素为单位的光标位置吗 我用过txtArea getCaretPosition 但这不是我所期望的位置 实际上我想要光标位置在x y像素坐标 TextUI http download oracle c
  • Ionic Cordova Build Android 未找到已安装的构建工具

    我在 Ubuntu 16 04 上的 Android 上构建 ionic 应用程序时遇到问题 这是我为了实现这一目标所做的一步 下载Android Studio 下载Android SDK 在 bashrc 和 bash profile 中
  • Android:单击分组通知会重新启动应用程序

    我正在尝试解决我在通知方面遇到的问题 在我的应用程序中 当有人单击列表项下载文件时 我将创建一个通知 带有不确定的进度和随机生成的整数代码 在下载回调中 我使用原始通知的相同 ID 更新通知以停止进度 单击通知应该打开手机上的下载文件夹 使
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做
  • bash、zsh :声明 [*] (天哪)

    我正在使用具有以下语法的 bash 脚本 declare a THIS 这在 zsh 中似乎是非法的 我收到 未找到匹配项 THIS 错误 谁能帮我把它翻译成 zsh 吗 另外 什么是 语法是什么意思 我知道我们正在声明一个数组 但为什么要
  • simplexml 和 xpath,读取同级

    我有以下 XML 文件
  • Chrome 和 JSESSIONID

    chrome 出现以下问题 我已经在服务器上运行 Grails 1 3 7 应用程序 我注意到 当我从 Chrome 请求静态内容 例如非动态 html 文件 时 Chrome 会创建两个 JSESSIONID Cookie 第一个是登录窗
  • JavaFX 全屏 - 根据屏幕尺寸调整元素大小

    有没有什么方法可以使全屏 如果可能的话也调整大小 而不是重新排列所有内容 实际上它所做的是重新排列元素 例如调整大小但调整到整个屏幕 以形成实际的全屏模式 就像通常改变屏幕分辨率的游戏一样 以便按钮和文本根据屏幕 窗口的大小相应增长 另外
  • 如何将向量转换为数组

    我如何转换std vector
  • x86 上 SPARC 的交叉编译

    我已经看到关于交叉编译器的回复如何在 Windows 上交叉编译 C 代码 以便二进制文件也可以在 Unix Solaris HPUX Linux 上运行 https stackoverflow com questions 579695 h
  • 如何仅在 PR 上触发构建,而不是在合并后在 Azure 管道上触发构建?

    这是向pyjanitor project https github com ericmjl pyjanitor 我已经构建了分为多个作业的管道 并且这些作业被设计为并行运行 但是 我注意到即使在合并 PR 后也会触发构建 因此 我的问题有两
  • 按值传递容器会使迭代器失效吗?

    这是一些示例代码 include
  • C 中的堆错误

    我知道这确实很一般 但当我在 Visual C 2008 Express 中运行 c 文件时 我得到 this 见下文 当我打电话时会发生这种情况malloc 以我的工作为例 我动态地正确分配内存 HEAP Code exe HEAP 释放
  • Nodejs + mongodb:如何查询 $ref 字段?

    我将 MongoDB 与 Nodejs REST 服务一起使用 该服务公开了存储在其中的数据 我有一个关于如何查询使用 ref 的数据的问题 这是一个对象的示例 其中包含对花药集合中另一个对象 详细信息 的引用 id ObjectId 59
  • 在 Django 查询中与父级一起获取子级数据

    我有两个模型产品和产品包 产品包有一个产品型号的外键 我如何访问包含产品包的所有产品的列表 class Product models Model title models CharField verbose name Product Tit
  • 谷歌距离矩阵 API

    我正在尝试获取direction in traffic 使用常规路线 API 不会返回该值 我发现有一个字段distancematrixapi 就是这样做的 当我从自己的机器上运行该代码时 该代码可以工作 但是一旦上线 我就会看到有关的错误
  • 我想在Java中使用关于随机索引的索引

    我使用Java 当我在Java中使用ArrayList时 如果我随机访问索引号 这可能吗 如果这是不可能的 我应该怎么做 例如 ArrayList
  • 在 Python 中使用列表理解来执行类似于 zip() 的操作?

    我是一名 Python 新手 我想做的事情之一就是围绕列表理解进行思考 我可以看到这是一个非常强大的功能 值得学习 cities Chicago Detroit Atlanta airports ORD DTW ATL print zip
  • 将像素传递给 glTexImage2D() 后会发生什么?

    例如 如果我创建一个像素数组 如下所示 int getPixels int pixels new int 10 pixels 0 1 pixels 1 0 pixels 1 1 etc glTexImage2D getPixels glTe
  • -XX:MinHeapFreeRatio 和 -XX:MaxHeapFreeRatio 的目的是什么

    请告诉我这些选项的目的 谷歌搜索后我想 MinHeapFreeRatio 表示 GC 后将确保堆内存中指定的最小空间百分比是可用的 和 MaxHeapFreeRatio告诉 GC后堆内存中的空闲空间不会超过指定的百分比 如果空闲内存超过指定