- Dubbo version: 2.7.7
- Operating System version: macos
- Java version: 1.8
Steps to reproduce this issue
基于日志调试,最终定位到耗时代码在: AnnotatedInterfaceConfigBeanBuilder#configureBean 方法中,那就针对这个方法采集一下火焰图,如下:


每个ReferenceBean在初始化的完成后都要执行这个方法。通过日志,项目中220ReferenceBean的时候,执行了8400多万次。而如果ReferenceBean#prepareDubboConfigBeans只执行一次,isFactoryBean之会执行5000万次。 这种情况下, 启动耗时最少可以提升10s
优化
我们的想法是改成只执行一次,例如:

这目前测试下来没发现什么问题,但不确定这样是否会产生什么副作用呢
Steps to reproduce this issue
基于日志调试,最终定位到耗时代码在: AnnotatedInterfaceConfigBeanBuilder#configureBean 方法中,那就针对这个方法采集一下火焰图,如下:

每个ReferenceBean在初始化的完成后都要执行这个方法。通过日志,项目中220ReferenceBean的时候,执行了8400多万次。而如果ReferenceBean#prepareDubboConfigBeans只执行一次,isFactoryBean之会执行5000万次。 这种情况下, 启动耗时最少可以提升10s
优化
我们的想法是改成只执行一次,例如:

这目前测试下来没发现什么问题,但不确定这样是否会产生什么副作用呢