业务不停的迭代,加上打工人换了一波又一波,导致很多业务接口特别重,可读性非常的差。最近项目在重构优化,部分接口平均响应时间在 1.5s 左右,对于用户体验来说,非常的不友好。本文旨在提出几个接口优化的一些常用的办法。
1、优化的准则
一切的前提是业务价值需要。如果没有足够的价值,那么可读性才是第一,性能在需要的地方是no.1,但不需要的地方可能就是倒数第一,因为异步,并发编程,逻辑缓存,算法真的会加剧系统的复杂度,得不偿失。。当下技术框架出来的软件差不到哪去,没有这种及时响应诉求的地方,削峰下慢慢跑就是了。
2、度量性能的指标:接口的响应时间
通常条件下,人眼的识别连贯图像的速度是24帧/秒,也就是1000毫秒/24帧,大约为40ms(毫秒)。达到或者超过这个速度的连贯图像, 观看时就不会形成卡顿的感觉。从用户体验的角度上来说,接口的响应时间应该收敛在 200ms 内。比如 web 应用的响应时间,如果超过 5s,那几乎是不可忍受的。所以一般来说,度量性能的指标是系统接口的响应时间。但是单次的响应时间是没有意义的,你需要知道一段时间的性能情况是什么样子的。
度量的指标有:1、平均值 2、最大值 3、最小值 4、分位值
3、优化的方式
【应用程序层面】
3.1、缓存:
一级缓存或者多级缓存。
针对一些不变的信息,可以通过缓存来替换多次请求或者查询。
3.2、异步:
通过多线程进行异步。分而治之处理大人物,并发编程,采用多线程并行的方式处理业务。
使用场景:
【业务和消息耦合】【大事务=小事务+消息】
通