Что такое профайлер в майнкрафт

Обновлено: 30.06.2024

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

Профилировщик Java - это инструмент, который отслеживает конструкции и операции байт-кода Java на уровне JVM . Эти конструкции кода и операции включают создание объекта, итеративное выполнение (включая рекурсивные вызовы), выполнение методов, выполнение потоков и сборку мусора.

В этой статье мы обсудим основные профилировщики Java: JProfiler, YourKit, Java VisualVM и Netbeans Profiler.

Факты [ ]

  • Каждая вариация блока генерируется только один раз. Остальная часть карты пуста и заполнена лишь блоками барьера и воздуха.
  • Через барьерный слой можно пройти только в режиме Наблюдения.
  • Отсутствует цикл день/ночь. Время суток можно регулировать с помощью консольных команд.
  • Единый биом — равнины (за исключением тех случаев, когда вы находитесь в Нижнем мире или Крае).
  • Если подлететь близко к текстуре динамита и написать команду /summon PrimedTnt начнется бесконечный взрыв динамита. Это происходит из-за того, что блок динамита все время заново появляется и взрывается.
  • В этом мире не имеет смысла выживать, при попытке уничтожить блок из него ничего не выпадет. Однако при уничтожении взрывом блок может выпасть.

5. Профилировщик NetBeans

Профилировщик NetBeans входит в состав IDE NetBeans от Oracle с открытым исходным кодом .

Хотя этот профилировщик во многом похож на Java VisualVM , это хороший выбор, когда мы хотим, чтобы все было заключено в одну программу (IDE + Profiler).

Все другие описанные выше профилировщики предоставляют плагины для улучшения интеграции IDE.

На снимке экрана ниже показан пример интерфейса профилировщика NetBeans:


Интерфейс телеметрии Netbeans Profiler

Netbeans Profiler также является хорошим выбором для упрощенной разработки и профилирования . NetBeans Profiler предоставляет единое окно для настройки и управления сеансом профилирования и отображения результатов. Это дает уникальную возможность узнать, как часто происходит сборка мусора .

Настройка [ ]

Чтобы выбрать режим отладки, удерживайте Левый Alt при выборе типа мира. Данный режим можно найти непосредственно после типа мира Парящие острова.

7. Заключение

В этой статье мы обсудили профилирование и профилировщики Java. Мы рассмотрели особенности каждого Profiler и то, что определяет потенциальный выбор одного из них.

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

Minecraft Wiki

Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.

6. Другие твердотельные профилировщики

Некоторые заслуживающие упоминания здесь: Java Mission Control, New Relic и Prefix (от Stackify) - они имеют меньшую долю рынка в целом, но определенно заслуживают упоминания. Например, префикс Stackify - отличный легкий инструмент профилирования, хорошо подходящий для профилирования не только приложений Java, но и других веб-приложений.

Экран отладки

Вы можете помочь, обновив содержимое статьи в соответствии с последними версиями Minecraft. Вы можете помочь проекту, расширив текущую статью с помощью перевода.


Экран отладки в 1.2.3.

Обозначения:

В правом верхнем углу показываются некие параметры использования памяти, а слева внизу динамически рисуется график, показывающий время рендеринга. Справа внизу находится круговая диаграмма, показывающая распределение используемой памяти. Её можно переключать клавишами 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 (номер нажимаемой клавиши соответствует номеру раздела под диаграммой)

До версии Beta 1.8 Pre-release 2 ;) также над каждым мобом отображается его идентификатор. Эта опция помогала находить и убивать мобов, которые расположены далеко или за слоем породы. Также эта особенность упрощала поиск пещер и сокровищниц.

Проблемы [ ]

Отчёты об ошибках, связанных с «Режим отладки», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).

3. YourKit

YourKit Java Profiler работает на многих различных платформах и обеспечивает отдельные установки для каждой поддерживаемой операционной системы (Windows, MacOS, Linux, Solaris, FreeBSD и т. Д.).

Как и JProfiler, YourKit имеет основные функции для визуализации потоков, сборок мусора, использования памяти и утечек памяти с поддержкой локального и удаленного профилирования через туннелирование ssh .

Вот краткий обзор результатов профилирования памяти серверного приложения Tomcat:


Профиль памяти YourKit Java Profiler серверного приложения Tomcat

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

YourKit имеет интересную функцию профилирования ЦП, которая позволяет целенаправленно профилировать определенные области нашего кода, например методы или поддеревья в потоках. Это очень мощный инструмент, позволяющий выполнять условное профилирование с помощью функции «что, если».

На рисунке 5 показан пример интерфейса профилирования потоков:


Рисунок 5. Интерфейс профилирования потоков YourKit Java Profiler

Мы также можем профилировать вызовы баз данных SQL и NoSQL с помощью YourKit. Он даже дает представление о фактически выполненных запросах.

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

Minecraft Wiki

Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.

2. JProfiler

JProfiler - лучший выбор для многих разработчиков. Благодаря интуитивно понятному пользовательскому интерфейсу JProfiler предоставляет интерфейсы для просмотра производительности системы, использования памяти, потенциальных утечек памяти и профилирования потоков.

Обладая этой информацией, мы можем легко узнать, что нам нужно оптимизировать, исключить или изменить в базовой системе.

Вот как выглядит интерфейс JProfiler:


Обзорный интерфейс JProfiler с функциями

Как и большинство профилировщиков, мы можем использовать этот инструмент как для локальных, так и для удаленных приложений. Это означает, что можно профилировать приложения Java, работающие на удаленных машинах, без необходимости устанавливать на них что-либо .

JProfiler также обеспечивает расширенное профилирование как для баз данных SQL, так и для NoSQL . Он обеспечивает специальную поддержку для профилирования баз данных JDBC, JPA / Hibernate, MongoDB, Casandra и HBase.

На приведенном ниже снимке экрана показан интерфейс проверки JDBC со списком текущих подключений:


Просмотр проверки базы данных JProfiler

Если мы хотим узнать о дереве вызовов взаимодействий с нашей базой данных и увидеть соединения, которые могут просочиться, JProfiler прекрасно справится с этим.

Живая память - это одна из функций JProfiler, которая позволяет нам видеть текущее использование памяти нашим приложением . Мы можем просмотреть использование памяти для объявлений и экземпляров объектов или для всего дерева вызовов.

В случае дерева вызовов распределения мы можем выбрать просмотр дерева вызовов живых объектов, объектов со сборкой мусора или того и другого. Мы также можем решить, должно ли это дерево распределения быть для определенного класса или пакета или для всех классов.

На приведенном ниже экране показано использование оперативной памяти всеми объектами с количеством экземпляров:


Просмотр живой памяти JProfiler

JProfiler поддерживает интеграцию с популярными IDE, такими как Eclipse, NetBeans и IntelliJ. Можно даже переходить от снимка к исходному коду !

Содержание

История [ ]

Официальный выпуск Java Edition
1.814w26a Добавлен тип мира «Режим отладки».
14w27a При создании мира доступен только режим Наблюдение.
Каждая вариация блока генерируется только один раз.
1.1318w06a Ошибка, при которой мир в режиме отладки не генерируется.
18w07a Ошибка из предыдущего снимка исправлена.

Режим отладки

Вы можете помочь проекту, расширив текущую статью с помощью перевода.

Мир, сгенерированный в режиме отладки.

Режим отладки — это тип мира, используемый для проверки моделей и текстур блоков. Данный режим полезен для создателей пакетов ресурсов.

4. Java VisualVM

Java VisualVM - это упрощенный, но надежный инструмент профилирования для приложений Java. По умолчанию этот инструмент входит в комплект Java Development Kit (JDK). Его работа зависит от других автономных инструментов, предоставляемых в JDK, таких как JConsole , jstat , jstack , jinfo и jmap .

Ниже мы можем увидеть простой обзорный интерфейс текущего сеанса профилирования с использованием Java VisualVM:


Профилирование приложения локального сервера Tomcat Java VisualVM

Одним из интересных преимуществ Java VisualVM является то, что мы можем расширить его для разработки новых функций в виде плагинов . Затем мы можем добавить эти плагины во встроенный центр обновлений Java VisualVM.

Java VisualVM поддерживает локальное и удаленное профилирование , а также профилирование памяти и ЦП. Для подключения к удаленным приложениям требуется предоставить учетные данные (имя хоста / IP-адрес и пароль, если необходимо), но не обеспечивает поддержку ssh-туннелирования . Мы также можем включить профилирование в реальном времени с мгновенными обновлениями (обычно каждые 2 секунды).

Ниже мы можем увидеть внешний вид памяти приложения Java, профилированного с помощью Java VisualVM:


Гистограмма кучи памяти Java VisualVM

С помощью функции моментальных снимков Java VisualVM мы можем делать снимки сеансов профилирования для последующего анализа .

Свойства [ ]

В данном мире генерируются все блоки из Minecraft. Все блоки и предметы расположены в виде сетки, размером в 180x180 блоков по всей высоте y=70 , с полом из блоков барьера на высоте y=60 .

При выборе этого типа мира доступен только режим Наблюдение, а другие опции (такие как «Генерировать структуры», «Бонусный сундук»), недоступны, однако игровой режим можно изменить с помощью команд в самой игре. Ломать блоки можно, только если изменён игровой режим, однако при разрушении они мгновенно появляются снова. Можно взаимодействовать с некоторыми блоками (например, с сундуками), но нельзя с рычагами, красными повторителями и т. д. Нижний мир и Край также преобразуются в отладочный мир. Если попасть в Край через Нижний мир, то появятся имена авторов.

Начиная с координаты 0.0, на первом ряду располагаются 89 блоков (с севера на юг), и 87 блоков (с востока на запад). Всего генерируются 7770 блоков, предметов и их вариаций.

Как работает мод?

1. Мод собирает информацию об игре , которая появляется в виде удобных схем и таблиц в самой игре.
2. Также для игроков доступен текстовый файл, где можно смотреть всю информацию .
3. Мод полезен для игровых сборок , которые требуют много производительности. Можно выявить требовательные моды.

Мод Worldgeneration Profiler 1.16.5/1.15.2 (Исправляем задержку генерации)

Можно заметить, что данный мод сообщает нам о том, что мод ruins создает задержки при генерации чанков и время задержек.
В конфиг файле вы сможете выставлять параметр времени при котором мод будет сообщать о задержках, стандартно это 20мс.

Мод Worldgeneration Profiler 1.16.5/1.15.2 (Исправляем задержку генерации)

Мод Worldgeneration Profiler 1.16.5/1.15.2 (Исправляем задержку генерации)

Worldgeneration Profiler – мод на Майнкрафт 1.16.5/1.15.2, который позволит игроку получить информацию об игровом мире, которая будет полезна для тех, у кого возникают проблемы с производительностью в игре. Дело в том, что теперь можно будет узнать о тех чанках, в которых загрузка происходит очень долго. К примеру, долгая загрузка – это более 100+ ms. Соответственно, будет легко понять, в каком чанке имеются какие-либо проблемы.

Читайте также: