Перейти к содержимому

Valence Benchmark

Бенчмарк, который ничего не стоит запустить. Записывает 10 минут фреймтаймов, чанков, сущностей, CPU/GPU/RAM и тиков сервера без единой аллокации в потоке рендера, а затем пишет полный отчёт в HTML и текстовом формате.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
152
Подписчиков на Modrinth
0
версия
1
Обновлён
15 августа 202615 авг.
Опубликован
в 2026

Коротко о моде

Работает на Fabric
Для Minecraft 1.19–1.21.11
Нужен и в игре, и на сервере
Последняя версия — 1.1.0 от 15 августа 2026
Нужен Fabric API
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.19–1.21.11
Описание переведено автоматическиПоказать оригинал (EN)

Valence Benchmark

Бенчмарк для Minecraft, который ничего не стоит запустить. Minecraft 1.21.1 · Fabric · только клиентская часть · от ceketrumdev

Большинство внутриигровых бенчмарков меняют то, что измеряют. Они рисуют оверлей, пишут на диск, выделяют память в потоке рендера, и часть лагов, о которых они сообщают, — их собственные. Valence Benchmark записывает 10-минутное окно, в котором не делает ничего из этого. Один System.nanoTime(), два сравнения и две записи в массив на кадр, в буферы, выделенные до старта часов. Ни оверлея, ни логирования, ни сборки мусора, ни скриншотов, пока окно открыто. Затем, когда часы остановлены, он пишет полный отчёт. Он не просит верить ему на слово. Отчёт печатает собственную стоимость мода — в наносекундах и в байтах, выделенных на кадр, — измеренную в потоке рендера в начале каждого запуска. Показатель выделения памяти должен быть 0.00.

Быстрый старт

1.  Зайдите в мир и постойте на месте несколько секунд
2.  /valence bench start
3.  Играйте как обычно 10 минут
4.  Нажмите на ссылку отчёта в чате

Это весь процесс. Запуск завершается сам; останавливать его никогда не нужно.

Команды

Всё находится под /valence. Все команды клиентские — они обрабатываются вашей игрой и никогда не доходят до сервера — за одним исключением, отмеченным ниже.

КомандаАргументыЧто делает
/valence bench start—Прогревается, затем измеряет в течение 10 минут
/valence bench stop—Отменяет прогрев или досрочно завершает идущее измерение
/valence bench status—Текущее состояние, прогресс, ссылка на последний отчёт
/valence bench open—Кликабельная ссылка на последний отчёт
/valence bench—То же, что status
/valence world—Последнее измеренное время загрузки мира
/valence scene entities` [type] [radius]`Создаёт воспроизводимую сцену с сущностями
/valence scene clear—Удаляет сцену

/valence bench start

Печатает короткий отсчёт, затем открывает окно измерения. Во время прогрева мод выделяет свои буферы, запускает аппаратные пробы, делает эталонный скриншот и принудительно запускает сборку мусора, чтобы окно начиналось с чистой кучи. Отказывается запускаться, если вы не в мире (метрикам чанков и сущностей нужен мир), если запуск уже идёт или если сцена всё ещё строится. Как только окно открыто, ничего не рисуется и не логируется до его закрытия. Играйте как обычно.

/valence bench stop

Во время прогрева — отменяет. Во время запуска — завершает досрочно и всё равно пишет отчёт, явно помеченный как частичный, потому что 3-минутный и 10-минутный запуски несопоставимы.

/valence bench status

Простой: последнее время загрузки мира и ссылка на последний отчёт. Идёт: прошло, осталось, записано кадров на данный момент, получено чанков на данный момент.

/valence world

Последнее время загрузки мира отдельно. Это измерение идёт непрерывно, независимо от любого бенчмарка — зайдите в мир, постойте на месте, и мод засечёт время, не будучи попрошенным.

`/valence scene entities [type] [radius]`

АргументДиапазонПо умолчанию
count1 – 20000обязателен
typeлюбой id сущности, например minecraft:zombieminecraft:zombie
radius1 – 256 блоков16
/valence scene entities 300
/valence scene entities 300 minecraft:zombie
/valence scene entities 300 minecraft:zombie 24

Призывает count сущностей по кольцу заданного радиуса вокруг вас, на вашем уровне Y. Каждая сущность находится на одинаковом расстоянии, поэтому все они на одном уровне детализации и в одном состоянии отсечения — единственная оставшаяся переменная — их количество. Они появляются с NoAI, NoGravity, Silent, Invulnerable и PersistenceRequired, и несут тег valence_bench. Никто не уходит, не падает, не исчезает, не шумит и не умирает. Запустите ту же команду завтра — и получите ту же сцену.

Это единственная команда, которая обращается к серверу. Она отправляет обычные команды /summon от вашего имени, поэтому нужны читы в одиночной игре или op на сервере. Они отправляются по 20 за тик, чтобы сервер не кикнул вас за спам. radius можно указать только если указан и type.

/valence scene clear

Выполняет kill @e[tag=valence_bench] — удаляет ровно то, что разместила команда сцены, и ничего из того, что построили вы.

Что вы получаете

Отчёты записываются в .minecraft/valence-benchmark/:

ФайлЧто это
`valence-.html`Полный отчёт. Графики, интерактивный, работает офлайн навсегда
`valence-.txt`То же содержимое в виде простого текста, можно вставить в issue или таблицу
`valence-.json`Необработанные данные
`valence--golden-start.png/-golden-end.png`Эталонные кадры
latest.html / latest.txtКопия самого последнего запуска

HTML-отчёт

Сначала главные цифры, затем детали, сгруппированные по категориям: Сводка — полоса На первый взгляд, оценивающая стабильность, лаги, давление GC, скорость выделения памяти и время тика сервера, каждая с порогом, с которым она сравнивалась, чтобы оценку можно было проверить, а не принимать на веру. Затем FPS, 1% low, 0.1% low, стабильность и время загрузки мира, каждое со своей линией тренда. Частота кадров — процентили, подсчёт лагов, распределение, FPS во времени и FPS по количеству сущностей: зависимость нагрузки от частоты кадров, фактически измеренная в этом запуске. CPU и GPU — нагрузка на систему и процесс, загрузка GPU, VRAM, температуры, питание, частота. Память — куча, вне кучи, RSS процесса, GC и выделение памяти Java в потоке рендера. Мир — время загрузки чанков, пропускная способность, удерживаемые чанки, клиентские сущности. Сервер — полная картина встроенного сервера (см. ниже). Эталонные кадры — два эталонных скриншота, чтобы вы могли убедиться, что два сравниваемых запуска действительно рисовали одну и ту же сцену. Конфигурация — машина, GPU, драйвер, флаги Java, все настройки видео, полный список модов. Перетаскивайте по любому графику времени, чтобы приблизить, и все семнадцать из них перейдут к одному и тому же моменту —

Заметьте просадку на 4:10 на графике частоты кадров и сразу увидьте, чем занимались CPU, GPU, куча и загрузчик чанков в течение этих пятнадцати секунд. Есть кнопка Copy summary, которая кладёт в буфер обмена таблицу в markdown, экспорт в CSV и стилевая таблица для печати, чтобы получить чистый PDF.

Что измеряется

Кадры — сырое время каждого кадра в наносекундах, без ограничений. Задержка в 4 секунды так и остаётся задержкой в 4 секунды. Медиана, p95, p99, p99.9, максимум, стандартное отклонение, вариация между кадрами, количество статтеров и время, потерянное на статтеры. Сущности, по кадрам — количество клиентских сущностей записывается на каждом кадре, рядом с его временем. Частота кадров без указания количества сущностей, при котором она измерялась, ни с чем не сравнима. Время загрузки мира — от появления в мире до момента, когда счётчик чанков перестаёт двигаться. Это самое универсальное сравнимое число, которое может выдать бенчмарк Minecraft, потому что ему ничего не нужно знать о рендерере: ClientChunkManager остаётся ванильным, что бы вы ни установили поверх. Чанки — время декодирования и применения для каждого полученного чанка, пропускная способность, количество удерживаемых чанков во времени. Встроенный сервер — реальная длительность каждого тика: минимум, p1, медиана, p95, p99, p99.9, максимум, стандартное отклонение, полное распределение, тики дольше 20/33/50 мс, какую долю 50-мс бюджета тика использует средний тик, и общее время, потраченное сверх него. Загруженные чанки и сущности в сумме и по измерениям. TPS — это фактически наблюдаемые тики ÷ прошедшее время, а не 1000 ÷ MSPT, который не видит тик, пропущенный полностью. Показаны оба, рядом. Машина — загрузка CPU (системная и доля Minecraft), загрузка GPU, VRAM, температуры, энергопотребление, частоты, куча, внекучная память, RSS процесса, системная память, потоки, GC. Выделение памяти Java в потоке рендера — сэмплируется по потокам и дифференцируется в МБ/с. Именно эта скорость, а не размер кучи, определяет, будет ли конфигурация страдать от статтеров на GC. Фактически удерживаемая куча — измеряется после принудительной сборки, когда окно уже закрыто. Кривая кучи показывает давление выделения; это одно число показывает реальный объём.

Как читать числа

FPS — это кадры ÷ прошедшее время. Никогда не среднее мгновенных частот кадров — это придаёт больший вес быстрым кадрам и выдаёт число, которое никто не испытывал. То же правило действует внутри каждой секунды и каждой группы сущностей. В ходу два определения «1% low», и они не совпадают:

1% lowкадры ÷ прошедшее время по самым медленным 1% кадров
P11000 ÷ 99-й процентиль времени кадра

Первое чувствительнее к крупным просадкам, второе стабильнее. Оба есть в отчёте. Сравнивайте одну и ту же строку между запусками. Стабильность — это 1% low ÷ FPS. При 100% игра идеально ровная; ниже 60% статтеры ощущаются, даже когда среднее выглядит лестно. Запуск сравним только с запуском, сделанным в тех же условиях: тот же мир, тот же маршрут или сцена, те же настройки, те же моды, то же количество сущностей. Отчёт записывает всё это — а золотые кадры позволяют проверить своими глазами.

Требования

  • Minecraft 1.19 - 1.21.1
  • Fabric Loader 0.16 или новее
  • Fabric API
  • Java 21 (уже требуется для 1.21.1) или Java 17 Только клиентская часть. Работает в одиночной игре и на серверах; метрики сервера заполняются в одиночной игре, где встроенный сервер работает в том же процессе. Для загрузки GPU нужен nvidia-smi в PATH (по умолчанию с драйверами NVIDIA) или, на Linux с картой AMD, счётчик gpu_busy_percent, который уже предоставляет драйвер amdgpu. Без того или другого всё остальное продолжает работать, а загрузка GPU отображается как n/a.

Настройка

.minecraft/config/valence-benchmark.json, создаётся при первом запуске. Значения по умолчанию — то, что вам нужно; из них стоит знать:

КлючПо умолчаниюЭффект
durationSeconds600Длительность окна измерения
warmupSeconds5Период тишины перед стартом отсчёта
frameBufferMaxFps1500Задаёт размер буфера кадров — увеличьте, если у вас больше 1500 fps
gpuProbe"auto"auto, nvidia-smi, sysfs, off
cpuTemperature"auto"Везде, кроме Windows, где запрос через WMI требует прав администратора и обычно не срабатывает
goldenScreenshotstrueСнимки до и после окна измерения
progressMessagesfalseСтрока прогресса каждую минуту — выключено, потому что сообщение в чате стоит раскладки текста
autoOpenReportfalseОткрывать отчёт в браузере по завершении запуска

Credits

Valence Benchmark от ceketrumdev. Лицензия MIT.

Частые вопросы

Как установить Valence Benchmark?

Установите Fabric под свою версию Minecraft, скачайте Valence Benchmark под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Valence Benchmark?

У Valence Benchmark есть сборки для Minecraft 1.19–1.21.11.

Нужен ли Valence Benchmark на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее