Apoli Stream Leak
Apoli Stream Leak представляет собой ядерную модификацию для Forge, предназначенную для устранения предотвратимых проблем с производительностью, связанных с Apoli (Forge).
Назначение
Apoli является сторонней перераспределяемой библиотекой, которая изначально встроена в Origins (Forge). Разработчики модов могут использовать её независимо от остальных компонентов Origins. В коде Apoli существует несколько мест, где создаются потоки данных в методах, вызываемых каждый игровой такт как на клиенте, так и на сервере. Создание этих потоков вместе с сопутствующими лямбда-выражениями приводит к заметному снижению производительности, особенно на серверах с большим количеством подключенных игроков.
Apoli Stream Leak заменяет использование этих потоков данных традиционными циклами for и другими альтернативными реализациями, чтобы избежать избыточного потребления памяти. Результат становится заметным сразу же.
Разница в производительности
Вот профиль производительности Spark для модпака Resurvival, который включает Apoli: https://spark.lucko.me/Qa87epEMA8
А вот профиль производительности Spark для того же экземпляра, но уже с установленным Apoli Stream Leak: https://spark.lucko.me/vQ1lXBRg7w
В собственном дереве модов Spark сам Apoli демонстрирует снижение времени такта на 4% при использовании вместе с Apoli Stream Leak. Другие моды, такие как Mining Master, которые используют события, напрямую перехватываемые Apoli, также показывают снижение примерно на 1% или более.
Открытость к другим решениям
Apoli Stream Leak был создан из-за отсутствия открытого репозитория с исходным кодом для Apoli (Forge) (не путать с оригинальным модом Apoli). Я лично открыт к возможности внесения изменений, реализованных в этой ядерной модификации, непосредственно в сам Apoli (предпочтительно для версии Forge, так как это моя основная сфера применения).