Async Logger — мод для Minecraft, который делает операции логирования асинхронными.
В ванильной игре логгеры не асинхронны. Это значит, что сами операции логирования, включая операции ввода-вывода, выполняются в потоке логирования. Мод переводит логирование в асинхронный режим для повышения производительности.
Это особенно полезно, когда регистрируется большое количество сообщений и/или включено отладочное логирование (по умолчанию в Forge / NeoForge).
Замеры производительности
Пункт | Vanilla | AsyncLogger |
|---|---|---|
Простые сообщения (10k) | 6146.1ms | 141.2ms |
Сообщения с плейсхолдерами (10k) | 6413.2ms | 96.6ms |
Сообщения с Throwable (1.5k) | 19572.4ms | 9.0ms |
Эти тесты можно провести самостоятельно, включив testPerformance в конфигурации. При включении этой опции мод регистрирует большое количество сообщений как до, так и после настройки асинхронных логгеров. Результаты тестов видны в логе.
Фильтрация
Начиная с версии 2.0.0 AsyncLogger поддерживает фильтрацию логов. Фильтрация выполняется в отдельном потоке асинхронного логгера, поэтому не создаёт дополнительной нагрузки для вызывающей стороны.
Чтобы воспользоваться, достаточно установить filtering.enabled
