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

EfficientHashing

Улучшенный алгоритм хеширования для Vec3i и BlockPos в Майнкрафт, почти устраняющий коллизии и повышающий производительность.

Оцените первым
181.0K
13

EfficientHashing

Мод EfficientHashing решает проблему, о которой ты мог даже не задумываться: хеш-коды позиций в Minecraft. Каждый блок в мире хранится через BlockPos (или его родительский Vec3i), и во многих местах - от поиска путей до кэширования чанков - эти объекты хешируются. В ванильном алгоритме коллизии (когда разные координаты дают одинаковый хеш) достигают 93%! Это серьёзно замедляет работу, особенно на больших расстояниях.

EfficientHashing заменяет стандартный алгоритм на PhiMix - почти без коллизий. Каждый уникальный BlockPos получает свой уникальный хеш-код. Результат - заметный прирост производительности везде, где используются хеш-таблицы с координатами.

Тест на коллизии

Разработчик прогнал все BlockPos от (-100, -20, -100) до (100, 50, 100) - больше 2,8 миллиона объектов. Вот что вышло:

АлгоритмУникальных хешейКоллизийПроцент коллизий
Ванильный194 5712 673 90093.2%
EfficientHashing2 868 47100%

PhiMix даёт 0% коллизий в этом тесте. Разница колоссальная.

Производительность

Новый алгоритм чуть медленнее оригинального - примерно на 5% (95.3% от скорости ванильного). Но эту потерю с лихвой окупает устранение коллизий. На практике это означает, что любые операции, где хешируются координаты (например, в модах вроде Lithium или структурных оптимизациях), будут работать быстрее, а не медленнее.

Бенчмарки: VecHashingBenchmark.mixin - 47 ops/s, VecHashingBenchmark.vanilla - 49 ops/s. Разница минимальна.

Совместимость с ваниллой

PhiMix сохраняет особенность: BlockPos(0,0,0) даёт хеш 0, как и в оригинале. Это значит, что никаких багов с "нулевыми" позициями не будет. Мод полностью совместим с ванильным клиентом и сервером.

Зачем это нужно в Майнкрафте?

На маленьких картах ты можешь не заметить разницы. Но на серверах с большим миром, активным exploration или модами, которые активно используют BlockPos (вроде тех, что перебирают много блоков), этот мод - реальный буст производительности. Особенно в связке с другими оптимизационными модами для Fabric (например, Lithium, Sodium). EfficientHashing - незаметный, но очень полезный инструмент для чистки "узких мест" ванильного кода.

Короче, если твоя сборка на Minecraft 1.19-1.21 (Fabric) и ты гоняешься за FPS или серверным TPS - поставь этот мод. Он не сделает погоды в одиночной игре на плоской карте, но в сложных условиях коллизии - зло, и PhiMix с ним отлично справляется.

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

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

Minecraft: Java Edition

1.21.x1.20.x1.19.x1.18.x

Платформы

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

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

Ссылки

Создатели

Детали

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