项目场景:
X项目综合查询功能,需要提前把各个基础资料和下拉列表数据缓存到本地,我采用的是字典的数据结构来储存数据
问题描述
本地数据少的时候没发现问题,在现场测试环境的时候综合查询执行速度较慢,超过三十秒。一开始下意识以为是数据库的查询部分导致,随之进行了拆分数据异步查询后,发现竟然还不是这块的问题。后来又加了日志,发现在循环遍历给字典赋值的时候,有一个循环特别慢,而这个字典赋值有一个特殊的操作,就是当字典的key值已存在时,会对value值进行新值和旧值拼接,value值是一个字符串,我直接用的+,问题估计就出在这里。
源代码
原因分析:
这样的写法拼接字符串的次数达到了万级别时,执行时间就需要秒级,效率可谓是比较差的。
为了测试字符串拼接的速度,我新建了一个控制台来测试五种字符串拼接的速度,测试代码如下: