- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我使用以下标志为我的 JVM 配置了连续飞行记录
java
-XX:StartFlightRecording=disk=false,dumponexit=true
-XX:FlightRecorderOptions=memorysize=200m
-jar
....
据我了解,此配置最多可在内存中存储 200mb 的热点事件,达到限制时丢弃最旧的。
为了转储记录,我通过 jcmd
使用 JFR.dump
命令。还有一种通过任务控制提取记录的替代方法,但由于其中的一个错误,我没有成功提取在任务控制的 JVM 之外运行的记录。令人惊讶的是,MBean 服务器管理工作正常。
无论如何,我看到可以通过任务控制通过“转储”功能指定从连续记录转储的间隔范围,例如从 2021-01-01 13:00:00 到 2021-01-01 14 :00:00。假设当前时间为 2021-01-02 17:00:00。如何通过 JFR.dump
指定相同的间隔?看JFR.dump引用,没有任何标志可以做到这一点。那么任务控制是如何做到的呢?
注意:我使用的是 JMC 8 和 Oracle JDK 11 0 10u8。
最佳答案
不幸的是,您拥有的链接在搜索引擎中排名很高,但它已有六年历史了。您可以找到最新的文档 here (JDK 16),与 JDK 11 非常相似。
无法转储基于内存的记录的一部分。在您的示例中,您必须删除 'disk=false' 和 -XX:FlightRecorderOptions,并将 'maxsize=200M' 添加到 -XX:StartFlightRecording:
$ java -XX:StartFlightRecording:maxsize=200M -jar ...
那么你可以这样做:
$ jcmd <pid> JFR.dump begin=2021-01-01T13:00:00 end=2021-01-01T14:00:00
日期时间格式为ISO-8601 ,这是 LocalDataTime.toString() 和 Instant.toString() 产生的。
如果您省略结束时间,JFR.dump 将假定它应该在您执行转储时结束,如果您指定相对时间,它将相对于转储时间。
例如,转储最后一小时:
$ jcmd <pid> JFR.dump begin=-1h
也可以使用maxage参数来限制数据,例如:
$ jcmd <pid> JFR.dump maxage=1h
maxsize参数可用于指定要包含多少数据,例如:
$ jcmd <pid> JFR.dump maxsize=50MB
另一种选择是创建两个基于磁盘的记录:
$ java -XX:StartFlightRecording:maxsize=200M,name=sized
-XX:StartFlightRecording:maxage=1h,name=aged
-jar ...
$ jcmd <pid> JFR.dump name=aged
两个记录的开销与一个相同。
(我不会太担心基于磁盘的记录的开销。JFR 中的所有数据都是无锁写入的,并由后台线程刷新。磁盘和内存之间的开销差异通常无法衡量)
关于java - 转储部分 Java Flight Record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67604655/
我感兴趣的是,在使用 JFR 程序进行分析时,是否可以为每个或大多数用户方法获取以纳秒为单位的开始和结束时间? 我知道可以使用代码检测,但我想利用采样分析器的优势来减少对实际程序执行的影响。 我觉得这
我正在开发 iOS 应用程序,需要识别应用程序运行的环境以对 API 端点进行分类。我想知道该应用程序是否在生产、模拟器和试飞下运行。我已经通过用户定义的设置对生产和模拟器进行了分类,但我仍然不确定如
Java Flight Recorder 现在是 OpenJDK 11 的一部分,并提供自定义事件的使用。 成功录制后,我想重用事件中的信息(尤其是我自己的自定义事件),但不知何故我无法读取事件的字段
我正在使用 jvm 的命令行参数列表 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=延迟=2m,
我才刚刚开始使用 Flight.js并意识到组件实例共享局部变量,但在文档中没有找到任何相关信息。 这就是我的意思: flight.component(function () { var sh
Java Mission Control jmc 的用户界面允许我生成Flight Recorder 记录。在 Start Flight Recording 对话框中,我可以输入要生成的记录文件的名称
将应用提交审核后,我无法向构建中添加新的测试人员或新的测试组。单击 App Store 连接中构建下的“测试飞行”选项卡中的添加按钮时,会显示一个弹出消息,其中包含消息 “您只能将 1.9.5 版的一
我试图破译 context 中“飞行中请求”的含义浏览器加载网页: Look for the first interactive window where there is a contiguous
最近去一家公司面试(M开头,A结尾)问了我这个问题。仍在练习我的算法,所以我希望有人能帮助我理解如何解决这个问题,以及这些类型的问题。 问题: 给你 2 个数组。例如: D = [10,7,13,12
假设我使用以下标志为我的 JVM 配置了连续飞行记录 java -XX:StartFlightRecording=disk=false,dumponexit=true -XX:FlightRecord
我正在开发一个打算使用an Amazon SQS Delay Queue的项目。 我在准确理解“飞行中”消息的含义方面有些麻烦。 文档中有一条注释,内容为: Note There is a 120,0
我们的 CI 中有一项工作,用于启动 Java 应用程序并运行一些测试(该测试充当应用程序的客户端)。该应用程序是使用我认为正确的 JVM 选项来启动连续飞行记录的: -XX:+UnlockComme
我正在尝试通过使用 osgGA::AnimationPathManipulator 将 osg::AnimationPath 应用于我的 osgViewer::Viewer 实例的相机。我的问题是 A
一直在寻找如何通过 Twitter Flight 附加到动态创建的元素。 具有以下 HTML Add element 以及下面的组件定义 var Article = flight.component(
我有一个 Java 进程,我使用以下选项启动它(如此处建议:parameters for FR): -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
我的应用程序需要一个从我们的服务器接收远程通知的功能。它在 expo 和模拟上工作正常,但在独立的 iOS 上,它向我显示这样的错误 我通过试飞安装此应用程序,其中“通知”权限返回状态为“未确定”,因
我的目标是建立一个解耦的 UI 架构。我希望轮播和分页组件彼此分开;但分页能够监听 uiCarouselMoved 事件的更改。 示例:http://jsbin.com/uQadehI/1/edit?
我在 TestFlight 服务器中有 v1.1.1 和 v1.1.3。是否可以完全删除 1.1.3 然后上传 v1.1.2? 最佳答案 您甚至不需要删除 1.1.3,您只需上传 1.1.2 的新版本
我正在使用 Java Mission Control + Flight Recorder 分析 java8 JVM 进程。 在 I/O 选项卡下检查记录时,它说: "Event types 'File
有个奇怪的问题... 在我的 AppDelegate.m 中,我有以下内容: -(BOOL)application:(UIApplication *)application didFinishLaun
我是一名优秀的程序员,十分优秀!