FastEvent - оптимизационный мод для Forge и NeoForge, который ускоряет одну из самых фундаментальных систем этих загрузчиков - систему событий (Event system). Если вы собираете сборку модов на Forge и замечаете тормоза при большом количестве обработчиков событий, этот проект может заметно улучшить ситуацию.
В Minecraft на Forge многие моды подписываются на события через аннотации @SubscribeEvent или @EventBusSubscriber. Когда событие происходит, EventBus должен вызвать все подписанные методы. По умолчанию это делается через рефлексию (method.invoke(...)), что медленно. Чтобы ускориться, Forge генерирует на лету классы-обработчики для каждого метода - это быстрее рефлексии, но генерация классов сама по себе требует времени.
FastEvent предлагает более элегантный подход: вместо генерации целых классов он использует лямбда-выражения. Это не только ускоряет создание обработчиков, но и позволяет JVM лучше оптимизировать код.
Автор провёл бенчмарки (тесты производительности) и вот результаты:
Разница особенно заметна на больших сборках модов, где сотни обработчиков событий регистрируются и вызываются постоянно.
Если вы хоть немного знаете Java, вот наглядный пример. Допустим, есть класс-слушатель:
class Listen {
public void onEvent(Event event) {
}
}
Listen lis = new Listen();
Обычный EventBus генерирует для каждого обработчика отдельный класс:
class IEventListener$Listen$onEvent implements IEventListener {
private Listen instance;
public IEventListener$Listen$onEvent(Listen instance) {
this.instance = instance;
}
@Override
public void invoke(Event event) {
instance.onEvent(event);
}
}
IEventListener handler = new IEventListener$Listen$onEvent(lis);
FastEvent же делает всё проще через лямбду:
IEventListener handler = lis::onEvent;
Лямбда не создаёт лишних классов, она компактнее и JVM может её лучше оптимизировать.
Да, FastEvent больше не обновляется. Начиная с Minecraft 1.18.2+ версии сломались из-за изменений в Forge/NeoForge. Дело в том, что EventBus загружается не как часть игры, а как "библиотека", и через Mixin или Transformer его не изменить. В версии 1.2.0 автор использовал "грязный хак" (или "нестандартный подход", если хотите) для модификации класса ASMEventHandler, но на новых версиях это перестало работать.
Тем не менее, для старых версий Minecraft (до 1.18) мод всё ещё актуален и может дать прирост производительности. Если вы собираете сборку на Forge под 1.12.2 или 1.16.5 - FastEvent вполне может быть полезен.
Скачайте FastEvent и попробуйте сами - на больших сборках разница в производительности может быть ощутимой.

Мод FastEvent для Forge/NeoForge ускоряет систему событий, заменяя генерацию классов на лямбда-выражения. Это даёт прирост производительности до 24% при обработке ивентов.