当前使用版本(必填,否则不予处理)
3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
3.3.1版本 PaginationInterceptor拦截器会实例化非常多的异常,导致JVM_FillInStackTrace消耗了大约8%~12%的系统资源
具体是因为通过org.apache.ibatis.reflection.MetaObject#getValue,org.apache.ibatis.reflection.MetaObject#setValue 处理私有字段时,会额外实例化IllegalAccessException异常
例如:com.baomidou.mybatisplus.core.toolkit.PluginUtils#realTarget 会实例化两个异常一次为获取”h“的时候,一次为获取”target“的时候
最新版本PaginationInterceptor已经有了很大的优化,但是在获取/替换BoundSql、ParameterHandler时,还是通过MetaObject对象进行处理
重现步骤(如果有就写完整)
引入3.3.1版本 注入PaginationInterceptor 调用任意访问数据库的接口 断点位置: org.apache.ibatis.reflection.invoker.GetFieldInvoker 37行 org.apache.ibatis.reflection.invoker.SetFieldInvoker 37行
报错信息
无
Comment From: huayanYu
建议参与PR
Comment From: qmdx
希望给出实质性的 pr