小猿日记(8) - 接口优化从13秒到3秒,我做了什么
口水记
由于以前的一些债务,某些接口是越来越慢,越来越慢。
最近做了一个新需求,其中有个接口的时间需要13秒。其实最开始是需要20多秒,后面优化了一下,就到13秒了。
但是13秒,这能忍嘛。尽管这个接口只有在用户第一次使用才会请求到(涉及到三个系统),但也忍不了啊,直接劝退一波不忠实用户。
只能是想办法,而且必须想办法。
首先想到的是把一些循环查询去掉。
说干就干,先去看看三个系统的链路,究竟是哪个系统耗时比较久。
结果,其中最底层的系统花费了11秒,那结果稳了呀,把那个11秒优化了,不就ok。
继续往下看,方法中只能通过打日志来看了,究竟是哪个方法,哪行代码耗时。
涉及到9个方法,每个方法耗时1秒多点,这就很难办了,没有明显的短板了。
不方,找一个方法看代码,发现有的方法中有一些遍历,是在循环中去查询数据库,这就有一些办法了。
这里的循环内查询还有点悬机,那就是循环内的查询,是循环对象中json字符串中的某个key的value,虽然处理起来麻烦一点,但最后还是处理好了,空间换时间嘛,总归要处理的。
很快,优化完毕,结果并不理想,差不多优化了2秒左右,还需要8-9秒的时间。
代码中是没有可以优化的点了,因为都是删除、插入、修改,查询都没有,缓存自然不用去想了。
此时想到了另外一点,异步。
因为之前在另外一次优化中有用到异步&#x
文章来源: chenhx.blog.csdn.net,作者:谙忆,版权归原作者所有,如需转载,请联系作者。
原文链接:chenhx.blog.csdn.net/article/details/106343183
- 点赞
- 收藏
- 关注作者
评论(0)