Перейти к содержанию

PZ Tools: как найти мод, вызывающий подтормаживания

Запись участка с подтормаживанием, анализ Lua и сравнение повторного запуска в PZ Tools.

Страница Performance в PZ Tools записывает работу игры и помогает исследовать подтормаживание по времени скриптов, игрового кода и остановкам, связанным с памятью. Автор указывает поддержку одиночной игры Build 42; результаты являются оценками, а не автоматическим доказательством причины.

Запишите проблему

Для редких рывков включите Settings → Performance → Keep the last minutes: программа хранит последние две минуты. После рывка нажмите Ctrl+Shift+F9 в игре или Save last 2 min на странице Performance. Сохранение подтверждается уведомлением над персонажем; запись появится на странице через несколько секунд.

Уведомление о сохранении последних минут

Если проблему можно повторить, нажмите Start recording на странице Performance, воспроизведите её и нажмите Stop recording. Автор предлагает около полуминуты. Оставьте Standard: режим Detailed даёт больше данных, но, по оценке источника, замедляет игру во время записи примерно на 20%. Без записи или включённого хранения последних минут данные не измеряются.

Выделите участок и оцените время

Высота каждого столбца соответствует самому медленному кадру внутри него. Протяните выделение по высоким столбцам: результаты ниже будут относиться к выбранному участку. Крестик на Selection или Esc возвращает просмотр всей записи.

Выделение столбцов на графике профайлера
Часть This range's timeЧто показывает источник
ScriptsLua-скрипты модов и самой игры.
Game codeРаботу игрового кода, например зомби или отрисовку мира; удаление модов может мало помочь.
Memory stopОстановки, связанные с нехваткой памяти.
WaitingВ основном оставшееся время до следующего кадра; это обычно нормально.

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

Полоса времени выделенного участка

Исследуйте Lua и память

На вкладке Scripts (Lua) показаны Base game scripts (vanilla) и моды с оценкой доли времени. Начните с верхних строк; выберите мод, чтобы увидеть его функции. Включённый по умолчанию Call tree также показывает вызывавший их код; выбор файла функции открывает его.

Вкладка скриптов Lua и дерево вызовов

Ванильный код часто оказывается сверху, потому что моды вызывают игровые скрипты. Выберите Base game scripts (vanilla) с Call tree и изучите верхние вызовы; путь файла при наведении помогает увидеть, какой мод начал работу. Наведите на Total для оценки доли участка. Memory allocation ранжирует моды по создаваемым ими объёмам памяти.

Если под графиком указано Stopped N times for lack of memory или Memory nearly full, источник рекомендует проверить память: нажмите Memory setting или откройте Settings → Game → Game memory и выберите больший размер. Настройка начнёт действовать при следующем запуске игры.

Сравните и сохраните результат

Отключите подозреваемый мод, повторите ту же ситуацию и выберите прежнюю запись в Compare with: программа покажет изменение долей. Загрузочные экраны и простой могут искажать сравнение; выделите подходящий участок и сохраните его через More → Save selection.

Copy for AI → Whole report копирует отчёт о выделенном участке; Detailed report содержит открытый мод, его функции и дерево вызовов. Save as a file сохраняет отчёт в Markdown, а More → Save as… — саму запись. По словам автора, запись содержит названия модов и скриптов, но не локальные пути. Горячие клавиши меняются в Settings → Hotkeys; небольшие различия между близкими оценками не стоит переоценивать.

Совместимость и помощь

Автор указывает, что PZ Tools создан для одиночной игры Build 42 и не подписан; Windows Smart App Control может заблокировать отдельные части. Страница Logs помогает найти ошибку; при аварийном закрытии отчёт записывается в %LOCALAPPDATA%\PzTools\crash. Для сообщения об ошибке автор просит версии приложения и игры, действия и подробности журнала или отчёт.