G1GC 日志中的时间

2023-12-06

我读过 G1GC 日志中打印的一些不同时间的描述,但无法真正证明/理解当我在本地生成它们时。例如,以下日志是在我的 Java 11 电脑上生成的。我想知道,第一行的 0.500 毫秒与第二行的 0.01 秒有什么区别?应用程序是否暂停(由于 STW)0.500 毫秒或 10 毫秒(0.01 秒)?我尝试了像 GCeasy 这样的工具,它显示最大暂停时间为 10 毫秒,在 Real = 0.00 的情况下,GCeasy 显示最小暂停时间为 0 毫秒。我想知道,那么0.500ms代表什么样的停顿呢?

[9.090s][info][gc ] GC(25) 暂停年轻(正常)(G1 疏散暂停)77M->2M(128M) 0.500ms

[9.090s][信息][gc,cpu] GC(25) 用户=0.00s 系统=0.00s 实际=0.01s

编辑:gc.logs 与 JMC 中的 GC 暂停时间差异

0.687ms pause in gc.log enter image description here

Where as 1.331 second according to JMC enter image description here


我不确定是否应该将此作为答案发布,因为这是my理解这个日志,但对于评论来说似乎太大了。

总时间为STW事件是0.500ms如果你用眼睛看G1GC两者都不是0.500ms nor 10ms如果你采取Shenandoah例如。当你使用G1GC, STW event被视为0.500ms, using Shenandoah,将导致0.500ms + delta;在哪里这个delta将是携带所有内容所花费的累积时间java threads to a safepoint(也叫TTSP- 到达安全点的时间)+为此需要进行的任何清理工作safepoint。也许一张图片会让这件事变得更容易:

   |------|------------------------|---------| 
   | TTPS |   G1 Evacuation Pause  | CleanUp |
   |------|------------------------|---------|

G1GC视为STW Event the G1 Evacuation Pause region only. Shenandoah例如,将整个事物视为STW活动(所有 3 个地区)。谁是对的?我将把这件事留给你来决定。

您可以启用安全点粒度G1GC via -Xlog:safepoint*, 例如。

你使用的工具有自己的“意见”哦,我想如何对待每次产生的日志;但绝对不是10 ms。为什么?正如您已经看到的(正如您在评论中所说),有时您会在日志中得到类似的内容:

[9.090s][info][gc ] GC(25) Pause Young (Normal) (G1 Evacuation Pause) 77M->2M(128M) 0.500ms

[9.090s][info][gc,cpu ] GC(25) User=0.00s Sys=0.00s Real=**0.00s**

注意Real=0.00s。这是否意味着有no pause?当然不是,这只意味着没有消耗cpu时间。

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

G1GC 日志中的时间 的相关文章

  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 如何控制绑定到 CustomObject 的 DataGridView 中的列类型?

    我在 C WinForms 应用程序中有一个 DataGridView 它在运行时 通过 Form Load 数据绑定到自定义对象 在 DataGridView 的设计视图中 我没有设置列 当表单加载时 将根据数据绑定到的自定义对象中的数据
  • 有负零吗?

    我正在编码简单的计算器只是为了开始 iPhone 开发 问题是我有一个 按钮 它应该通过执行一个简单的操作来否定已经放在屏幕上的任何内容 1 它工作正常 除非先前的输入是0 设想 屏幕空白或0 我点击 进行否定 然后当我点击例如9我希望它能
  • Java 中带有参数的高效 XSLT 管道

    这个问题的最佳答案描述了一种在 Java 中实现高效 XSLT 管道的技术 Java 中的高效 XSLT 管道 或将结果重定向到源 不幸的是 虽然 Transformer 似乎公开了一个用于设置 XSLT 参数的 API 但这似乎没有任何效
  • 如何使用 Jest 测试 asnyc 代码(或使用 jsdom 测试“image.onload”)

    编辑 我已经用 Promise 方式更改了我的代码 我正在写反应this由facebook创建的starter 我是测试方面的新手 现在我有一个关于图像的组件 它有一个检查图像大小的功能 import React Component fro
  • Drupal 7 Views - 按字段列出组

    我有一个列出类型内容的视图Bio 人物传记 但是 我想对其进行格式化 以便将它们分组在不同的标题下 我添加了一个新字段Bios内容类型是一个包含三个不同选项的下拉列表 Foo Bar and Baz 我想做的是将人员显示在各自组的标题下 现
  • 当视图使用主布局时,MVC 4 \ 表单提交按钮不起作用

    ok 经过长时间的调查 似乎当我创建一个与 layout cshtml 一起使用的视图时 我所拥有的表单中的提交按钮不起作用 没有任何操作返回到控制器 仅当我创建视图并取消选中 使用布局或母版页 时 该按钮才起作用 这看起来非常不清楚 所以
  • 如何使用 Spring RestTemplate 将列表或字符串数​​组传递给 getForObject

    我正在用 Spring 开发一些宁静的服务 我在将字符串数组或大字符串作为参数传递 获取到服务控制器时遇到问题 我的代码示例如下 控制器 RequestMapping value getLocationInformations pointL
  • HttpClient 订阅的响应标头未定义

    谁能告诉我为什么在从 http post 获取响应时没有收到任何标头的原因 this http post
  • 版本 5.5.4+ 中的 ItextSharp 字体颜色问题

    我有一些代码使用红色字体颜色创建红色 图章 string StampDate DateTime Now ToString MM dd yyyy string FontPath Server MapPath assets Fonts stri
  • 使用 Hadoop 版本 2.7.2 从 Spark 使用 S3a 协议访问 S3

    我正在尝试从 pyspark 版本 2 2 0 访问 s3 s3a 协议 但遇到了一些困难 我正在使用 Hadoop 和 AWS sdk 软件包 pyspark packages com amazonaws aws java sdk pom
  • OSMDroid:onTap 示例

    几周前我开始学习 Android 现在我需要你的帮助 我的任务是创建离线地图 使用 OSMDroid 和 Mobile Atlas Creator 上面有两个标记 它们之间的路径以及单击此标记后的一些活动 我已经做好了地图 标记和路径 这是
  • 如果缓存文件夹中不存在文件,则重写 htaccess

    我想检查缓存文件夹中是否不存在文件 然后将其重新连接到 php 文件 RewriteCond DOCUMENT ROOT cache 0 f NC RewriteRule jpg png gif css js include cache o
  • geodjango中按距离排序的效率如何(整个表)

    假设我有以下数据模型 Person models Model id models BigAutoField primary key True name models CharField max length 50 location mode
  • minSDK 低于 11 的 Android 设备上的 Google 地图 v2

    当我创建使用 Google 地图 API v2 的项目时 我遇到了这一行的问题 GoogleMap 地图 MapFragment getFragmentManager findFragmentById R id map getMap 据说我
  • ObjectListView 显示图标

    尝试将图标放入 ObjectListview 中 这是我应该放置图标的代码 objectListView1 SmallImageList imageList1 deleteColumn IsEditable true deleteColum
  • 使用 extjs 4 嵌套网格

    我可以将网格放入另一个网格的插件中 这是我的网格 我想放入配置 插件 扩展网格 var grid new Ext grid GridPanel store store columns header Customer Name dataInd
  • 是否可以在javascript中取消打印

    我正在使用这里找到的代码 检测浏览器打印事件检测用户是否想要打印该页面 到目前为止 它按预期工作 在 afterPrint 函数中 我调用一个函数 该函数创建并附加一个 iframe 其中包含另一个页面 该页面具有不同的 对需要打印的内容更
  • scanf 跳过所有直到出现字符串

    是否可以使用 scanf 跳过所有字符 直到到达特定字符串 我有一个 html 文件 我想跳过此字符串之前的所有字符 包括该字符串 h2 a href a href a a h2
  • 压缩阻塞文件中的记录的好算法是什么?

    假设您有一个由一堆固定大小的块组成的大文件 每个块都包含一定数量的可变大小的记录 每条记录必须完全适合单个块 并且根据定义 此类记录永远不会大于整个块 随着时间的推移 随着记录从这个 数据库 中移入和移出 记录会被添加到这些块中或从这些块中
  • G1GC 日志中的时间

    我读过 G1GC 日志中打印的一些不同时间的描述 但无法真正证明 理解当我在本地生成它们时 例如 以下日志是在我的 Java 11 电脑上生成的 我想知道 第一行的 0 500 毫秒与第二行的 0 01 秒有什么区别 应用程序是否暂停 由于