Valence Benchmark — объективный замер производительности Minecraft
Любой, кто хоть раз пытался оценить производительность Minecraft с модами, сталкивался с главной проблемой: сам бенчмарк влияет на результат. Оверлеи, логирование, выделение памяти на потоке отрисовки — всё это создаёт статтеры, которые потом ошибочно приписываются игре. Valence Benchmark решает эту задачу радикально: он вообще ничего не делает во время замера. Ни оверлея, ни записи на диск, ни сборщика мусора. Одна проверка System.nanoTime(), два сравнения и две записи в массив за кадр — и всё.
Это клиентское дополнение для Minecraft 1.21.1 на загрузчике Fabric, созданное разработчиком ceketrumdev. Оно измеряет десятиминутное окно, в течение которого вы просто играете как обычно, а затем формирует подробный отчёт. При этом мод честно показывает собственную стоимость — в наносекундах и байтах на кадр, измеренных на потоке отрисовки в начале каждого запуска. Обычно эта цифра равна 0.00, что и доказывает: Valence Benchmark не вмешивается в то, что измеряет.
Как работает Valence Benchmark
Весь рабочий процесс умещается в четыре шага. Заходите в мир, стоите неподвижно пару секунд, вводите команду /valence bench start, играете десять минут и кликаете по ссылке отчёта в чате. Замер завершается сам, останавливать его не нужно. Во время прогрева мод выделяет буферы, запускает аппаратные датчики, делает эталонный скриншот и принудительно запускает сборку мусора — чтобы окно замера начиналось с чистого состояния кучи.
Все команды работают на стороне клиента и не отправляются на сервер, за одним исключением — команда создания сцены. Если вы хотите воспроизводимый тест с одинаковым количеством сущностей, используйте /valence scene entities <count> [type] [radius]. Она спавнит от 1 до 20000 мобов на кольце заданного радиуса вокруг вас, с одинаковым уровнем детализации и состоянием отсечения. Сущности получают теги NoAI, NoGravity, Silent, Invulnerable и PersistenceRequired — ничего не убегает, не падает, не исчезает и не шумит. Повторите ту же команду завтра — получите ту же сцену.
Кстати, если вы хотите быстро опробовать Valence Benchmark для Minecraft, обратите внимание на лаунчер foxygame.net: в его каталоге дополнений можно найти этот мод и установить его в один клик, без ручного копирования файлов в папку модов.
Что именно измеряется
Отчёты сохраняются в папку .minecraft/valence-benchmark/ в четырёх форматах: интерактивный HTML с графиками, текстовый TXT, сырые данные JSON и два эталонных скриншота. Также создаются копии последнего запуска в файлах latest.html и latest.txt.
Ключевые метрики
- Кадры — сырое время каждого кадра в наносекундах, без округления. Задержка в 4 секунды остаётся задержкой в 4 секунды. Медиана, p95, p99, p99.9, максимум, стандартное отклонение, количество статтеров и потерянное время.
- Сущности — количество клиентских сущностей записывается на каждом кадре рядом с его временем. FPS без учёта числа сущностей не сравним ни с чем.
- Время загрузки мира — от появления в мире до остановки счётчика чанков. Это самый портируемый показатель, не зависящий от рендерера.
- Чанки — время декодирования и применения каждого чанка, пропускная способность, удержание чанков.
- Интегрированный сервер — реальная длительность каждого тика: min, p1, медиана, p95, p99, p99.9, максимум, полное распределение, тики свыше 20/33/50 мс. TPS считается как фактически наблюдаемые тики, делённые на прошедшее время — а не как 1000, делённая на MSPT, которая не видит пропущенных тиков.
- Машина — нагрузка CPU и GPU, VRAM, температуры, энергопотребление, тактовые частоты, куча, внекучная память, RSS процесса, потоки, GC.
- Выделение Java на потоке отрисовки — сэмплируется по потокам и дифференцируется в МБ/с. Именно эта скорость, а не размер кучи, определяет, будет ли конфигурация статтерить при сборке мусора.
В HTML-отчёте можно перетаскивать любой временной график, и все семнадцать графиков синхронно переместятся к тому же моменту. Заметили падение FPS на 4:10 — сразу видно, что в этот момент делали CPU, GPU, куча и загрузчик чанков. Кнопка Copy summary копирует markdown-таблицу в буфер обмена, есть экспорт в CSV и стиль печати для чистого PDF.
Чтение цифр
FPS здесь — это кадры, делённые на прошедшее время. Никакого среднего арифметического мгновенных значений, которое взвешивает быстрые кадры сильнее и выдаёт число, которого никто не испытывал. В отчёте присутствуют оба определения 1% low: первое чувствительнее к большим просадкам, второе стабильнее. Сравнивайте одну и ту же строку между запусками.
Консистентность — это 1% low, делённый на FPS. При 100% игра идеально ровная, ниже 60% статтеры ощущаются, даже если средний FPS выглядит привлекательно. Запуск сравним только с запуском при тех же условиях: тот же мир, маршрут или сцена, настройки, моды и количество сущностей. Отчёт фиксирует всё это, а эталонные скриншоты позволяют убедиться собственными глазами.
Требования и установка
Для работы Valence Benchmark нужны Minecraft 1.21.1, Fabric Loader 0.16 или новее, Fabric API и Java 21. Мод работает только на стороне клиента — в одиночной игре и на серверах. Показатели сервера заполняются в одиночной игре, где интегрированный сервер работает в том же процессе. Для замера нагрузки GPU требуется nvidia-smi в PATH (по умолчанию с драйверами NVIDIA) или счётчик gpu_busy_percent на Linux с картой AMD. Без этого всё остальное работает, а нагрузка GPU показывается как n/a.
Скачать Valence Benchmark можно с официальных страниц мода или через каталоги дополнений. Если вы пользуетесь лаунчером foxygame.net, там есть удобная функция автообновления — мод всегда будет актуален, а совместимость с нужной версией Minecraft проверяется автоматически, что избавляет от ручной возни с версиями Fabric API.
Настройка конфигурации
Файл .minecraft/config/valence-benchmark.json создаётся при первом запуске. Значения по умолчанию оптимальны, но полезно знать о ключевых параметрах: durationSeconds (600 — длина окна замера), warmupSeconds (5 — тихий период перед стартом), frameBufferMaxFps (1500 — размер буфера кадров, увеличьте при FPS выше 1500), gpuProbe (auto, nvidia-smi, sysfs, off), goldenScreenshots (true — эталонные скриншоты до и после окна), progressMessages (false — строка прогресса раз в минуту) и autoOpenReport (false — открывать отчёт в браузере после завершения).
Valence Benchmark — это инструмент для тех, кто устал от бенчмарков, которые измеряют сами себя. Он даёт честные цифры, воспроизводимые сцены и полную картину происходящего в системе. Установите его один раз — и получите объективную основу для сравнения любых конфигураций Minecraft.