- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在其中一个项目上使用Java 8(Oracle JVM)进行G1GC实验。我的GC标志实际上是:
-Xms64m
-Xmx1024m
-XX:+UseG1GC
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xloggc:/tmp/gc.log
-XX:+PrintAdaptiveSizePolicy
[G1Ergonomics (Heap Sizing) attempt heap expansion, reason: recent GC overhead higher than threshold after GC, recent GC overhead: 10.17 %, threshold: 10.00 %, uncommitted: 811597824 bytes, calculated expansion amount: 162319564 bytes (20.00 %)]
-XX:GCTimeRatio
(吞吐量目标)调整该阈值,但是从
docs中可以看到,没有G1的等效标志。
最佳答案
概述:
在this Oracle article(1)中,您可以找到G1的最重要标志(包括-XX:MaxGCPauseMillis
)。
This bug report表示在G1中也使用了GCTimeRatio
标志。
另请参见this related question & answer(2)。
我认为您应该能够通过将-XX:MaxGCPauseMillis
设置为更高的值来解决此问题,或者如果您知道您的应用程序创建了很多(年轻)垃圾,那么您可以使用年轻一代大小的设置。编辑:好的,对此要非常小心,(1)指出:*年轻代大小*:避免使用-Xmn选项或任何其他相关选项(例如-XX:NewRatio)显式设置年轻代大小。固定年轻一代的大小会覆盖目标暂停时间目标。
(1)
重要默认值:
G1 GC是一个自适应垃圾收集器,具有默认值,可使其无需修改即可高效工作。这是重要选项及其默认值的列表。该列表适用于最新的Java HotSpot VM(内部版本24)。您可以通过在JVM命令行上输入以下具有更改的设置的选项来适应和调整G1 GC以满足应用程序的性能需求。
-XX:G1HeapRegionSize = n
设置G1区域的大小。该值为2的幂,范围为1MB至32MB。目标是基于最小的Java堆大小具有大约2048个区域。
-XX:MaxGCPauseMillis = 200
为所需的最大暂停时间设置目标值。默认值为200毫秒。指定的值不适合您的堆大小。
-XX:G1NewSizePercent = 5
设置要用作年轻代大小的最小值的堆百分比。默认值为Java堆的5%。这是一个实验性标志。有关示例,请参见“如何解锁实验性VM标志”。此设置替换-XX:DefaultMinNewGenPercent设置。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:G1MaxNewSizePercent = 60
设置堆大小的百分比,以用作年轻代大小的最大值。默认值为Java堆的60%。这是一个实验性标志。有关示例,请参见“如何解锁实验性VM标志”。此设置替换-XX:DefaultMaxNewGenPercent设置。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:ParallelGCThreads = n
设置STW工作线程的值。将n的值设置为逻辑处理器的数量。 n的值与最多等于8的逻辑处理器的数量相同。
如果逻辑处理器多于八个,则将n的值设置为逻辑处理器的大约5/8。除较大的SPARC系统外,这在大多数情况下都有效,其中n的值大约为逻辑处理器的5/16。
-XX:ConcGCThreads = n
设置平行标记线的数量。将n设置为并行垃圾回收线程(ParallelGCThreads)数量的大约1/4。
-XX:InitiatingHeapOccupancyPercent = 45
设置触发标记周期的Java堆占用阈值。默认占用率是整个Java堆的45%。
-XX:G1MixedGCLiveThresholdPercent = 65
设置要包含在混合垃圾收集周期中的旧区域的占用阈值。默认占用率为65%。这是一个实验性标志。有关示例,请参见“如何解锁实验性VM标志”。此设置替换-XX:G1OldCSetRegionLiveThresholdPercent设置。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:G1HeapWastePercent = 10
设置您愿意浪费的堆百分比。当可回收百分比小于堆垃圾百分比时,Java HotSpot VM不会启动混合垃圾回收周期。默认值为10%。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:G1MixedGCCountTarget = 8
设置标记周期后混合垃圾回收的目标数量,以收集具有最多G1MixedGCLIveThresholdPercent个实时数据的旧区域。默认值为8个混合垃圾回收。混合馆藏的目标是在此目标数量之内。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:G1OldCSetRegionThresholdPercent = 10
设置在混合垃圾收集周期中要收集的旧区域数的上限。缺省值为Java堆的10%。此设置在Java HotSpot VM(内部版本23)中不可用。
-XX:G1ReservePercent = 10
设置保留内存的百分比以使其保持空闲状态,以减少空间溢出的风险。默认值为10%。当增加或减少百分比时,请确保将总Java堆调整为相同的数量。此设置在Java HotSpot VM(内部版本23)中不可用。
(2)
我的猜测是recent GC overhead higher than threshold
推动了G1的决策。您可以通过设置-XX:GCTimeRatio=4
放宽它,这将使其相对于GCing的应用程序时间占用20%的CPU周期,而不是10%。
如果太多,您应该
允许它使用更多的CPU内核-可以更轻松地实现其暂停时间目标,这又意味着它可以将收集推迟更长的时间,从而更轻松地实现吞吐量目标。
是的,这确实意味着使用更多的内核实际上可以使用更少的CPU周期。
放宽暂停时间目标,以减少收集时间
关于java - 如何调整G1GC以减小内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57656250/
我是 R 新手,我正在使用 glmer 来拟合几个二项式模型,我只需要它们来调用 predict使用得到的概率。但是,我有一个非常大的数据集,即使只有一个模型的大小也会变得非常大: > library
我有一个包含数百个项目的直方图,我为其绘制了 Q-Q 图。这导致 EPS 大小为 2.5 兆字节。对于仅包含在出版物中并且不会以 100 倍放大倍率查看的图形来说,这太大了。 R 中是否有任何选项可以
我有一个 。 mp4 文件大小为 的视频540kb 并且在转换之前的持续时间为 30 秒,但是当我使用 时ffmpeg 将其转换为文件大小变为 21mb .我需要添加哪些选项才能将文件大小减小到小于
因此,我们有一个非常庞大且复杂的网站,需要在 URL 中放置大量状态信息。大多数时候,这只是桃子,应用程序运行良好。但是,有(越来越多的)URL 长度变得非常长的实例。由于 URL 长度限制,这会在
有没有办法减少分组 UITableViewCell 的标准宽度并将自定义按钮放在左侧(单元格边界之外)?我尝试更改单元格大小,但它保持不变 最佳答案 你将不得不伪造编辑模式。我的意思是,正如 Atom
我的项目中有大约 1000 张图像,图像总大小约为 400MB。我正在使用此图像在 MAc 上显示缩略图。 构建 xcode 后,我的应用程序构建大小为 410MB。我正在使用 NSImage ima
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当我编译我的 Snap 时webapp(将其部署到生产服务器),结果为 19MB!是什么赋予了?这是正常的吗?我做错了什么吗? 我的网站只有3个静态页面,基本上是snap's init project
在我们的项目中,我们决定通过使用预构建的二进制文件来减少构建时间。我们每周/每月创建一个稳定版本并将其提交到存储库。构建使用这些二进制文件,而不是从源代码构建所有内容。 对于构建速度来说,这太棒了。但
我必须创建一个自定义 jdialog,但我希望它小一点。它不应该有空白空间。下面的代码给了我这个: 如果我使用 setSize 减小大小,则会导致如下所示的错误 GUI: class Find ext
这个问题已经有答案了: pyplot: Can I set a global marker size parameter? (1 个回答) How to make markers on lines s
我正在尝试在列表中聚合使用 rpart::rpart 构建的多个 CART 模型。 我刚刚意识到每个模型在 $terms 和 $where 中存储了大量(元?)数据(在我的例子中每个模型超过 10MB
当我使用 scaledToHeight 调整 QPixmap 的大小,然后将其转换为 QByteArray 时,此 ByteArray 的大小恰好是未缩放 QPixmap 的 ByteArray 的大
有没有办法设置图形的 YSTEP? 我们正在尝试显示包含以下数据的图表 g = new Dygraph( document.getElementById("graph"),
我创建了一个 xib,其中一个单元格包含 UIImageView。 imageview 具有前导、尾随、顶部、底部约束。 xib为4kb,文件大小为4kb。我以编程方式创建了另一个具有相同约束和对象的
我正在尝试将图像大小减小到小于 64000 字节这是我的代码和日志。 NSData *beforeData = UIImageJPEGRepresentation(self.photo, 1.
我正在使用 OpenSSL-for-iPhone生成我可以与库一起使用的 OpenSSL 的自编译版本 RMStoreAppReceiptVerifier用于收据验证。具体来说,它构建了 OpenSS
我目前正在按照本指南制作多标签图像分类模型(它使用初始模型作为基础模型):https://towardsdatascience.com/multi-label-image-classification
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我的 HTML 页面中有宽度超过 250 像素的下拉菜单。 我需要更改下拉菜单的字体大小以减小宽度。 我尝试使用如下字体标签: . . . 以
我是一名优秀的程序员,十分优秀!