Closed coolbeevip closed 3 years ago
我发现时间主要消耗在 com.baomidou.mybatisplus.core.injector.AbstractSqlInjector
用mapper.xml的化还不如不用这个plus,文档一堆垃圾
表太多,你可以考虑下精简 baseMapper 自定义下,只保留你常用的 api
表太多,你可以考虑下精简 baseMapper 自定义下,只保留你常用的 api
精简后发现效果不是很明显
精简前: 加载 1154 个 Mapper 类,每个类 20 个方法,总耗时 175秒,平均每个 Mapper 耗时 151 毫秒
精简后:加载 1154 个 Mapper 类,每个类 12 个方法,总耗时 164秒,平均每个 Mapper 耗时 142 毫秒
我还是设置 Mapper Lazy 加载吧
另外,我测试了一下,在我本机上
改为 parallel 好像也能有一点提升
methodList.stream().parallel().forEach(m -> m.inject(builderAssistant, mapperClass, modelClass, tableInfo));
@coolbeevip 您这个工具是啥 我最近也在分析启动耗时问题
@coolbeevip 您这个工具是啥 我最近也在分析启动耗时问题
JProfiler
@coolbeevip 您这个工具是啥 我最近也在分析启动耗时问题
JProfiler
感谢回复 另外问一嘴你这个问题解决了吗 mapper懒加载很麻烦吧 你要把service跟controller都lazy掉才行
@coolbeevip 您这个工具是啥 我最近也在分析启动耗时问题
JProfiler
感谢回复 另外问一嘴你这个问题解决了吗 mapper懒加载很麻烦吧 你要把service跟controller都lazy掉才行
我们还好,因为这部分代码我们是根据一个描述文件自动生成的
@coolbeevip 您这个工具是啥 我最近也在分析启动耗时问题
JProfiler
感谢回复 另外问一嘴你这个问题解决了吗 mapper懒加载很麻烦吧 你要把service跟controller都lazy掉才行
请问mapper懒加载你是怎么做的?
我猜,你用service了吧,启动慢不是因为mapper加载,而是因为service注入到spring容器。你尝试一下给你的service都@Lazy,看看时间是不是缩短很多。我是直接通过spring的AOP机制把整包给懒加载了,800个mapper,启动很快。
当前使用版本(必填,否则不予处理)
version 3.3.2
MacBookk pro
JVM
该问题是如何引起的?(确定最新版也有问题再提!!!)
我的应用中大概有700+个 mapper.xml,启动的时候这部分初始化完毕需要耗时 3-4 分钟,这是否正常,有什么建议的方法可以优化吗?
MybatisConfiguration.addMapper 总体耗时并不多 33 多秒
但我的 MappedStatement 数量很多,将近 3 万