
EfficientHashing
Улучшенный алгоритм хеширования для Vec3i и BlockPos в Майнкрафт, почти устраняющий коллизии и повышающий производительность.
EfficientHashing
Мод EfficientHashing решает проблему, о которой ты мог даже не задумываться: хеш-коды позиций в Minecraft. Каждый блок в мире хранится через BlockPos (или его родительский Vec3i), и во многих местах - от поиска путей до кэширования чанков - эти объекты хешируются. В ванильном алгоритме коллизии (когда разные координаты дают одинаковый хеш) достигают 93%! Это серьёзно замедляет работу, особенно на больших расстояниях.
EfficientHashing заменяет стандартный алгоритм на PhiMix - почти без коллизий. Каждый уникальный BlockPos получает свой уникальный хеш-код. Результат - заметный прирост производительности везде, где используются хеш-таблицы с координатами.
Тест на коллизии
Разработчик прогнал все BlockPos от (-100, -20, -100) до (100, 50, 100) - больше 2,8 миллиона объектов. Вот что вышло:
| Алгоритм | Уникальных хешей | Коллизий | Процент коллизий |
|---|---|---|---|
| Ванильный | 194 571 | 2 673 900 | 93.2% |
| EfficientHashing | 2 868 471 | 0 | 0% |
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 с ним отлично справляется.
