modsmith Войти Войти Рус / Eng

FastSuite

fastsuite · 740300 загрузок · MIT

клиент: required · сервер: required (заявлено автором мода)

Оптимизация всей системы рецептов!

Описание

О

FastSuite повышает производительность сопоставления рецептов для каждого мода, использующего систему рецептов JSON, а не определенное подмножество рецептов. Его подход менялся в основных версиях — текущая реализация (7.0.0+) использует алгоритм на основе индекса.

Подходы

За время своего существования FastSuite использовал три разные стратегии:

Переупорядочение списка (4.0.0 и более ранние версии) — рецепты хранились в списке перемещения на передний план, поэтому часто используемые рецепты перемещались вперед, и их стало дешевле найти при последующих поисках. Первый доступ соответствовал скорости ванили; более поздние доступы к глубоким рецептам улучшились на >95%, с небольшим влиянием на рецепты, уже находящиеся на переднем крае.

Параллельное сопоставление (4.1.0–6.x) — для любого типа рецептов, содержащих более 100 рецептов, сопоставление распределялось по нескольким потокам, а не по одному. Это привело к ускорению работы All The Mods 8 в 10–12 раз и было более совместимым и менее хрупким, чем модель переупорядочения (например, она работала с Polymorph и при первом совпадении).

Индексированное сопоставление (7.0.0+) — текущий подход полностью отказывается от параллелизма в пользу алгоритма на основе индекса. Рецепты индексируются, поэтому тестируются только жизнеспособные кандидаты, а не просматривается весь список. Это соответствует всем рецептам ввода примерно в 2–4,5 раза быстрее, чем ванильный вариант, без потоковой обработки и записи данных для каждого совпадения:

[Indexed] — для соответствия всем рецептам досок из акации потребовалось в среднем 93541,68 нс.
[Ваниль] — для соответствия всем рецептам досок из акации потребовалось в среднем 416312,28 нс.
[Indexed] — для соответствия всем рецептам стиков потребовалось в среднем 203072,3 нс.
[Ваниль] — для соответствия всем рецептам палочек потребовалось в среднем 523836,38 нс.
[Indexed] — для соответствия всем рецептам стола крафта потребовалось в среднем 104967,54 нс.
[Ваниль] — для соответствия всем рецептам стола крафта потребовалось в среднем 236834,45 нс.
[Indexed] — для соответствия всем рецептам черного шалкерового ящика потребовалось в среднем 212810,42 нс.
[Ваниль] — для соответствия всем рецептам черного шалкерового ящика потребовалось в среднем 453240,12 нс.
[Indexed] — для сопоставления всех рецептов неудачного сопоставления потребовалось в среднем 243105,69 нс.
[Ваниль] — для сопоставления всех рецептов неудачного сопоставления потребовалось в среднем 918821,25 нс.

Если вы думаете: «Эй, подождите, эти цифры от 4.0.0 до 6.0.0 звучат лучше», ну, изменения в ванили уменьшили их до такой степени, что одновременное сопоставление было почти эквивалентно однопоточному сопоставлению. Базовый уровень теперь работает намного быстрее, но индексирование все еще может работать немного лучше.

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

Этот мод сделан ненавязчивым и должен работать со всеми другими модами, за исключением другого мода, также заменяющего менеджер рецептов. Он совместим с модами модификации рецептов, такими как KubeJS и CraftTweaker, и не вызывает проблем с JEI.

FastSuite не заменяет FastWorkbench или FastFurnace, хотя их преимущества будут уменьшены, если он будет установлен, поскольку часть работы перекладывается на FastSuite. Для максимальной эффективности рецепта я все же советую установить все три.

#Поддержи меня

Контакт

Дискорд: https://discord.shadowsoffire.dev

Версии (3)

ВерсияMinecraftЗагрузчикиФайл
5.1.2 1.20.1 forge скачать
1.21.1-6.0.7 1.21.1 neoforge скачать
26.1.2-7.0.0 26.1.2 neoforge скачать

Страница на Modrinth →