▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Experimental Performance

Experimental Performance

Экспериментальный мод для Minecraft на Fabric, который оптимизирует производительность за счёт уменьшения размера классов Chunk, Block и Entity в кэше процессора. Даёт прирост FPS на слабых ПК.

Оцените первым
26.5K
64

Experimental Performance - это экспериментальный мод для Minecraft (Fabric), который лезет в самые низкоуровневые механизмы игры ради прироста FPS. Если вы когда-нибудь задумывались, почему Майнкрафт лагает даже на мощных ПК, одна из причин - неэффективное распределение памяти в классах игры. Мод пытается это исправить.

Как это работает

Процессор работает с данными блоками по 64 байта - это кэш-линия. Если объект занимает больше 64 байт, процессору приходится делать несколько проходов, что замедляет работу. Experimental Performance уменьшает размер ключевых классов так, чтобы они укладывались в одну кэш-линию.

Оптимизация чанков (Chunk)

Обычный чанк занимает 80 байт - уже больше одной кэш-линии. Мод с помощью Fabric ASM "вырезает" лишние переменные из класса Chunk и перенаправляет вызовы. В результате чанк весит 64 байта, а операции с ним становятся быстрее примерно на 25% (0.25x). На практике это значит меньше микро-лагов при загрузке и обновлении чанков.

Оптимизация блоков (Block)

Блоки тоже тяжеловаты - 72 байта. Мод выносит часть данных в отдельный класс BlockInfo, уменьшая основной класс до 64 байт. Это ускоряет передачу блоков между компонентами игры и не даёт некоторым блокам перевалить за 128 байт (что потребовало бы уже 3 кэш-линии).

Оптимизация сущностей (Entity)

Сущности - настоящий кошмар: 272 байта, то есть 5 кэш-линий. Неудивительно, что толпы мобов или предметов на земле вызывают просадки FPS. Experimental Performance сокращает размер до 4 кэш-линий (примерно 256 байт). Дальше автор пока не полез - слишком много совместимости с другими модами ломается. Если мод станет популярным, возможно, он перепишет весь класс Entity и сделает API.

Почему Mojang не делает то же самое?

На самом деле они пытались - например, класс LevelInfo когда-то уже оптимизировали похожим образом. Но в последние годы разработчики Minecraft не особо заморачиваются производительностью. Классы распухают, а Mojang вносит странные изменения, которые не решают проблему глобально. Так что Experimental Performance - это попытка сообщества взять дело в свои руки.

Игра в кошки-мышки

Оптимизация - сложная штука. Чтобы выиграть в скорости на одних операциях, приходится жертвовать памятью или добавлять дополнительные вызовы. Автор честно говорит: его мод увеличивает количество аллокаций и вызовов методов, но итоговый выигрыш в производительности перекрывает эти потери. На практике вы этого даже не заметите.

Экспериментальный статус

Важно: мод очень сырой и использует "грязные" ASM-трюки. Автор не рекомендует включать его в сборки модов и не обещает совместимости с другими модами. Это proof of concept - доказательство того, что можно выжать больше FPS за счёт уменьшения размера классов в кэше. Тесты показывают явный прирост, но мод требует доработки. У автора сейчас нет времени продолжать разработку.

Тем не менее, если вы хотите поэкспериментировать и выжать максимум из своего ПК - скачайте Experimental Performance и проверьте сами. Только делайте бэкапы и не удивляйтесь возможным багам.

Часто задаваемые вопросы

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

Minecraft: Java Edition

1.20.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Ссылки

Детали

Лицензия:
Опубликован:2 года назад
Обновлён:2 года назад
Главная