我正在使用我们构建的几个自定义库,其中大量使用了lombok批注,尤其是@Slf4j
。当我记录创建每个bean所花费的时间时,我看到带有@Slf4j
批注的类要花费太多的时间(例如30s左右)来创建。
我的是一个平均大小的项目,大约有90个jar依赖项。我的观察发现@Slf4j
会降低初始化速度是否有意义?如果是这样,解决办法是什么?
答案 0 :(得分:1)
@Slf4j
在编译过程中转换为以下代码片段:
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MyClass.class);
然后将注释本身从类文件中删除(即在运行时不存在)。因此,您遇到的性能问题可能是由于LoggerFactory.getLogger()
的性能所致,其性能取决于所使用的日志记录后端(例如logback或log4j)。
无论您手动编写该行还是使用lombok,性能都没有差异。