мы просто перемещаем наше определение заданий cron из определений на основе xml в аннотации, управляемые
<task:annotation-driven />
мы не настроили его дальше, так как по умолчанию все в порядке.
У нас есть несколько запланированных аннотаций. Все работало нормально При его развертывании мы увидели значительное сокращение времени отклика с среднего времени отклика примерно 20-30 мс до среднего времени отклика 40-60.
После того, как мы просто закомментировали однострочник выше среднего времени отклика, мы снова опустились до обычных значений.
Мы проверили, что происходит. Мы также используем @Configurable. мы обнаружили, что
AsyncAnnotationBeanPostProcessor.postProcessAfterInitialization(...)
вызывается каждый раз, когда создается экземпляр компонента @Configurable, и это занимает 15% времени выполнения.
Кроме того, ScheduledAnnotationBeanPostProcessor вызывается каждый раз, но это занимало почти 0% нашего времени выполнения, потому что этот метод выполняет только
AnnotationUtils.getAnnotation(method, Scheduled.class);
Дополнительные затраты времени выполнения вместе с @Configurable делают его непригодным для нас.
Почему AsyncAnnotationBeanPostProcessor делает намного больше, чем ScheduledAnnotationBeanPostProcessor?
Поскольку мы не используем @Async в данный момент, есть ли способ отключить его?