Spec-Zone.ru › OpenJDK 17

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

@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, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/jdk.jfr/jdk/jfr/Category.html

Spec-Zone.ru

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