lombok'@ Slf4j'会减慢对象初始化的速度吗?

时间:2018-12-20 10:05:33

标签: performance lombok

我正在使用我们构建的几个自定义库,其中大量使用了lombok批注,尤其是@Slf4j。当我记录创建每个bean所花费的时间时,我看到带有@Slf4j批注的类要花费太多的时间(例如30s左右)来创建。

我的是一个平均大小的项目,大约有90个jar依赖项。我的观察发现@Slf4j会降低初始化速度是否有意义?如果是这样,解决办法是什么?

1 个答案:

答案 0 :(得分:1)

@Slf4j在编译过程中转换为以下代码片段:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MyClass.class);

然后将注释本身从类文件中删除(即在运行时不存在)。因此,您遇到的性能问题可能是由于LoggerFactory.getLogger()的性能所致,其性能取决于所使用的日志记录后端(例如logback或log4j)。

无论您手动编写该行还是使用lombok,性能都没有差异。