Диагностика производительности
spark представляет собой профилировщик для клиентов, серверов и прокси Minecraft. Он помогает понять, куда уходит процессорное время и почему появляются низкий TPS, длинные тики или высокая нагрузка.
CPU profiler периодически собирает образцы активности потоков и превращает их в дерево вызовов. Администратор видит, какие плагины, моды, события или игровые процессы занимают заметную долю времени. Профиль открывается в веб-просмотрщике, где ветви можно раскрывать до конкретных методов.
Сбор данных под задачу
Профилирование настраивается под проблему. Можно выбрать поток, изменить интервал выборки или записывать только периоды с медленными тиками. Повторный профиль после изменения конфигурации помогает проверить результат.
- CPU profiler строит читаемое дерево нагрузки.
- Heap summary показывает классы и количество объектов в памяти.
- Heap dump создает полный HPROF-снимок для внешнего анализа.
- GC monitor связывает паузы со сборкой мусора.
- Health report собирает основные показатели процесса и системы.
Память и сборка мусора
spark умеет создавать краткую сводку heap и полный дамп памяти. Сводка подходит для быстрой проверки многочисленных объектов, а HPROF для глубокого разбора внешними инструментами. Мониторинг GC показывает частоту и продолжительность сборок мусора, отделяя такие остановки от обычной нагрузки тика.
Состояние сервера
Отчеты о здоровье включают TPS, длительность тиков, загрузку CPU, память и место на диске. Наблюдение за отдельными медленными тиками помогает сопоставить просадку с действиями игроков, генерацией мира или автоматизацией.
Сравнение с Observable
Observable профилирует сущности и block entities и показывает проблемные места непосредственно в мире. spark дает более широкий системный срез: дерево вызовов потоков, память, GC и показатели здоровья. Первый вариант удобен для поиска тяжелых объектов, второй для общей диагностики процесса.
Практический сценарий
Модовую версию spark устанавливают в папку mods, после чего используют команды из документации. Стоит записать профиль в момент проблемы, изучить тяжелые ветви, внести одно изменение и повторить замер. Такой подход заменяет случайное удаление модов воспроизводимой проверкой.