Java Flight Recorder现在是 OpenJDK 11 的一部分,并提供自定义事件的使用。成功录制后,我想重用事件中的信息(尤其是我自己的自定义事件),但不知何故我无法读取事件的字段内容。我只能看到字段的注释、名称和类型。
有人知道这是否真的可能吗?
JFR 有一个消费者包,它允许您从文件中读取信息。我已经应用了一些功能。
我已经尝试过的
首先,我访问事件的所有字段:
event.getFields();
然后我遍历字段并以几种不同的方式访问它们的值:
a) eventField.getDescriptor();
b) eventField.getContentType();
光看他们的名字,显然他们都不会给我内容。不幸的是,我找不到任何可以提供帮助的功能。
我也尝试过
我还尝试了一个非常直接的想法:以调试方式阅读内容。我认为它会给我一些关于如何以编程方式提取这些信息的见解。
不幸的是,JFR设法以某种方式对他们的记录进行编码,在调试过程中,人们无法读取信息,直到以编程方式提取它们并将其作为局部变量(例如:地图)。
供您参考,我一直在使用此指令来实现自定义事件。