Module jdk.jfr
Package jdk.jfr

Annotation Interface Category


@Target(TYPE) @Inherited @Retention(RUNTIME) public @interface Category
事件注释,将事件类型与类别关联,以人类可读路径的格式呈现。

类别确定了事件如何呈现给用户。通常,同一类别的事件在图表和树状结构中一起显示。为了避免图形表示中持续事件的重叠,重叠事件必须属于不同的类别。

例如,为了监视向Web服务器上传图像并为每个上传创建单独线程,一个名为“文件上传”的事件在用户上传文件时开始,上传完成时结束。为了对图像上传进行高级诊断,创建了更详细的事件(例如,图像读取、图像调整大小和图像写入)。在这些详细事件期间,可能会发生其他低级事件(例如,套接字读取和文件写入)。

以下可视化展示了属于单个线程的重叠事件。通过将事件分配给不同的类别,它们可以在视觉上分开并垂直堆叠。

 13:00:01                                                     13:00:05
 ---------------------------------------------------------------------
  1   |                         文件上传                           |
 ---------------------------------------------------------------------
  2   |       图像读取          | 图像调整大小 |   图像写入   |
 ---------------------------------------------------------------------
  3   | 套接字读取 | 套接字读取 |              |    文件写入   |
 ---------------------------------------------------------------------
 
通过使用以下类别可以实现上述示例:
类别和通道
通道 事件名称 注释
1 文件上传 @Category("上传")
2 图像读取 @Category({"上传", "图像上传"})
2 图像调整大小 @Category({"上传", "图像上传"})
2 图像写入 @Category({"上传", "图像上传"})
3 套接字读取 @Category("Java应用程序")
3 文件写入 @Category("Java应用程序")

文件上传、图像读取和套接字读取事件同时发生(在同一线程中),但是这些事件属于不同的类别,因此在可视化中不会重叠。

以下示例展示了类别如何用于确定事件在树状结构中的可视化:

  |-[Java应用程序]
  |  |- 套接字读取
  |  |- 文件写入
  |-[上传]
     |- 文件上传
     |-[图像上传]
        |- 图像读取
        |- 图像调整大小
        |- 文件写入
 
自版本:
9
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    String[]
    返回此注释的类别名称,从根开始。
  • Element Details

    • value

      String[] value
      返回此注释的类别名称,从根开始。
      返回:
      类别名称