Ускоряем сборку за счёт миграции с kapt на ksp
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
#android #build #kapt #ksp #performance
https://habr.com/ru/companies/hh/articles/755952/
Хабр
Ускоряем сборку за счёт миграции с kapt на ksp
Всем привет, меня зовут Катя Гущина, я Android-разработчик hh.ru. Хочу поделиться нашим опытом отказа от kapt в пользу ksp для обработки аннотаций и ускорения скорости сборки в большом проекте. В этой...
👍4🔥1
🚀 Ускоряем Spring Boot без изменения кода
Многие приложения тормозят не из-за бизнес-логики, а из-за логирования.
Каждый лог - это I/O операция. При высокой нагрузке это становится узким местом.
Решение - асинхронное логирование через Logback.
Что происходит:
- сообщения складываются в очередь
- отдельный поток обрабатывает их в фоне
- основной поток не блокируется
- меньше задержек и выше throughput
Настройка проста - добавьте
src/main/resources/
Пример конфигурации:
Когда это особенно полезно:
• high-load сервисы
• микросервисы с большим количеством логов
• API с высокой RPS
• продакшен-окружение
⚠️ Важно: при аварийном завершении часть логов из очереди может потеряться. Для критичных логов используйте файл + async.
Маленькая настройка - большой прирост производительности.
#SpringBoot #Java #Backend #Performance
Многие приложения тормозят не из-за бизнес-логики, а из-за логирования.
Каждый лог - это I/O операция. При высокой нагрузке это становится узким местом.
Решение - асинхронное логирование через Logback.
Что происходит:
- сообщения складываются в очередь
- отдельный поток обрабатывает их в фоне
- основной поток не блокируется
- меньше задержек и выше throughput
Настройка проста - добавьте
logback-spring.xml в:src/main/resources/
Пример конфигурации:
<configuration>
<!-- Async wrapper -->
<appender name="ASYNC_CONSOLE"
class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="CONSOLE"/>
<queueSize>5000</queueSize>
<discardingThreshold>0</discardingThreshold>
<includeCallerData>false</includeCallerData>
</appender>
<!-- Console appender -->
<appender name="CONSOLE"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="ASYNC_CONSOLE"/>
</root>
</configuration>
Когда это особенно полезно:
• high-load сервисы
• микросервисы с большим количеством логов
• API с высокой RPS
• продакшен-окружение
⚠️ Важно: при аварийном завершении часть логов из очереди может потеряться. Для критичных логов используйте файл + async.
Маленькая настройка - большой прирост производительности.
#SpringBoot #Java #Backend #Performance