Spec-Zone.ru › OpenJDK 24

Категория интерфейса аннотации

@Target(TYPE) @Inherited @Retention(RUNTIME) public @interface Category
Аннотация события, для ассоциации типа события с категорией в формате удобочитаемого пути.

Категория определяет, как событие будет представлено пользователю. События, относящиеся к одной категории, обычно отображаются вместе на графиках и деревьях. Для предотвращения перекрытия продолжительных событий в графических представлениях, перекрывающиеся события должны быть в разных категориях.

Например, для мониторинга загрузки изображений на веб-сервер с отдельной нитью для каждой загрузки, событие под названием Загрузка файла начинается, когда пользователь загружает файл, и заканчивается, когда загрузка завершена. Для расширенной диагностики по загрузке изображений создаются более подробные события (например, Чтение изображения, Изменение размера изображения и Запись изображения). Во время этих подробных событий могут происходить другие события низкого уровня (например, Чтение сокета и Запись файла).

На следующем изображении показаны перекрывающиеся события, относящиеся к одной нити. Присваивая событиям различные категории, их можно визуально разделить и расположить вертикально.

 13:00:01                                                     13:00:05
 ---------------------------------------------------------------------
  1   |                         File Upload                        |
 ---------------------------------------------------------------------
  2   |       Image Read          | Image Resize |   Image Write   |
 ---------------------------------------------------------------------
  3   | Socket Read | Socket Read |              |    File Write   |
 ---------------------------------------------------------------------
 
Пример можно достичь, используя следующие категории:
Категории и полосы
Полоса Имя события Аннотация
1 Загрузка файла @Category("Upload")
2 Чтение изображения @Category({"Upload", "Image Upload"})
2 Изменение размера изображения @Category({"Upload", "Image Upload"})
2 Запись изображения @Category({"Upload", "Image Upload"})
3 Чтение сокета @Category("Java Application")
3 Запись файла @Category("Java Application")

События Загрузка файла, Чтение изображения и Чтение сокета происходят одновременно (в одной и той же нити), но находятся в разных категориях, поэтому не перекрываются на визуализации.

Следующие примеры показывают, как категория используется для определения того, как события визуализируются в дереве:

  |-[Java Application]
  |  |- Socket Read
  |  |- File Write
  |-[Upload]
     |- File Upload
     |-[Image Upload]
        |- Image Read
        |- Image Resize
        |- File Write
 
С момента:
9

Краткое описание обязательных элементов

Модификатор и тип Обязательный элемент Описание
String[] value
Возвращает имена категорий для этой аннотации, начиная с корня.

Подробное описание элементов

value

String[] value
Возвращает имена категорий для этой аннотации, начиная с корня.
Возвращает:
имена категорий

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/jdk.jfr/jdk/jfr/Category.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API