EalenXie / aop-log

项目正式命名为aop-log,基于Spring AOP,ThreadLocal实现方法埋点信息收集与处理。
Apache License 2.0
116 stars 54 forks source link

优化建议 #18

Closed sivern closed 2 years ago

sivern commented 2 years ago

1、经测试,spring spel 表达式对性能影响很大,在tag值为默认值undefined的情况下,该代码会使性能下降40%左右 data.setTag(elSupporter.getByExpression(signature.getMethod(), point.getTarget(), point.getArgs(), aopLog.getTag()).toString());

建议修改如下 if (!aopLog.getTag().equals("undefined")) { data.setTag(elSupporter.getByExpression(signature.getMethod(), point.getTarget(), point.getArgs(), aopLog.getTag()).toString()); }

2、另,默认的异步线程池队列,对比log4j2的disruptor异步处理性能差异巨大,在比较 asyncMode==true && log4j2 asyn==true 和 asyncMode==false && log4j2 asyn==true的情况下,开启aop-log的异步日志记录对性能的损耗大约占到20%

sivern commented 2 years ago

1、建议修改spel表达式的解析判断 2、建议异步日志模式交由 用户的日志框架自行进行配置,在这里的异步性能损耗可以认为是多余的