性能优化方案及思考

一、背景介绍

周末闲暇在家,朋友让我帮忙优化一个接口,这个接口之前每次加载都需要40s左右,经过优化将性能提了10倍左右;又加了缓存直接接口响应目前为300ms左右,于是将自己的优化思路整理总结一下

二、思路&方案

  • 1.分析需求,梳理业务流程,明确执行范围边界;绘制当前业务调用图
  • 2.将边界地方加入时间消耗,查看需要优化的地方
  • 3.绘制优化后的业务调用图
  • 4.进行代码的调整
  • 5.测试验证

三、过程

  • 1.如下是分析的业务调用图
    在这里插入图片描述
  • 2.如下是边界加入时间消耗的执行结果
    在这里插入图片描述
  • 3.如下为优化后的业务终版图(通过线程池、多线程并发爬取数据)
    在这里插入图片描述
  • 4.进行代码调整(初步优化,只放了自己调整的核心内容;和终版图还不太一致)
    在这里插入图片描述
    在这里插入图片描述
  • 5.测试验证(爬取和加载还未隔离的耗时结果)
    在这里插入图片描述
  • 6.加入缓存之后基本就达到了300ms(当然针对于这个时间还可以优化,思路就是将可以提前处理的内容再进行预制处理)

四、总结

  • 1.做事情之前一定要先梳理清楚、画好图,对照图给自己或者别人讲解一下
  • 2.根据业务需求,合理"压榨"cpu资源(使用多线程,并且要交给线程池去管理避免由于线程过多导致cpu时间都消耗在任务切换上)
  • 3.使用redis的rightPushAll方法的时候,不会根据value值去重,需要先删除key键对应的值再增加
  • 4.缓存其实也是数据分层的一种实现方式

五、升华

通篇总结下来,其实就是运用了预制和分治的思想;另外,在数据存储层面可以通过不同业务提供不同数据层级的数据以保证访问效率,还可以保证数据一致性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创业之路&下一个五年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值