前言

接口性能问题,对于从事后端开发的同学来说,是一个绕不开的话题。想要优化一个接口的性能,需要从多个方面着手。

本文将会接着接口性能优化这个话题,从实战的角度出发,聊聊我是如何优化一个慢查询接口的。

上周我优化了一下线上的批量评分查询接口,将接口性能从最初的20s,优化到目前的500ms以内。

1. 案发现场

我们每天早上上班前,都会收到一封线上慢查询接口汇总邮件,邮件中会展示接口地址调用次数最大耗时平均耗时traceId等信息。

我看到其中有一个批量评分查询接口,最大耗时达到了20s,平均耗时也有2s

skywalking查看该接口的调用信息,发现绝大数情况下,该接口响应还是比较快的,大部分情况都是500ms左右就能返回,但也有少部分超过了20s的请求。

这个现象就非常奇怪了。

莫非跟数据有关?

比如:要查某一个组织的数据,是非常快的。但如果要查平台,即组织的根节点,这种情况下,需要查询的数据量非常大,接口响应就可能会非常慢。

但事实证明不是这个原因。

很快有个同事给出了答案。

他们在结算单列表页面中,批量请求了这个接口,但他传参的数据量非常大。

怎么回事呢?

当初说的需求是这个接口给分页的列表页面调用,每页大小有:10、20、30、50、100࿰

接口优化从20s优化到500ms相关推荐

  1. Java性能优化从20s优化到500ms,我用了这三招,内容知识满满

    文章目录 前言 1. 案发现场 2. 现状 3. 第一次优化 4. 第二次优化 5. 第三次优化 5.1 前端做分页 5.2 分批调用接口 前言 接口性能问题,对于从事后端开发的同学来说,是一个绕不开 ...

  2. linux hdmi分辨率设置方法,HDMI接口进行设置来优化显示效果详解

    原标题:"利用HDMI接口进行设置来优化显示效果详解"的相关电脑教程资料分享.- 191路由网编辑整理. 最近小编收到一个朋友的求助表示不知道如何通过对HDMI接口进行设置来优化显 ...

  3. 商品秒杀接口压测及优化

    目录 一.生成测试用户 二.jmeter压测 三.秒杀接口优化 1.优化第一步:解决超卖 2.优化第二步:Redis重复抢购 3.优化第三步:Redis预减库存 ①商品初始化 ②预减库存 一.生成测试 ...

  4. App性能优化(布局优化,线程优化,app瘦身优化,页面切换优化,App启动优化,内存优化)

    Android APP性能优化(最新总结) 在目前Android开发中,UI布局可以说是每个App使用频率很高的,随着UI越来越多,布局的重复性.复杂度也随之增长,这样使得UI布局的优化,显得至关重要 ...

  5. Android系统性能优化(69)---含内存优化、布局优化

    Android性能优化:含内存优化.布局优化 前言 在 Android开发中,性能优化策略十分重要 因为其决定了应用程序的开发质量:可用性.流畅性.稳定性等,是提高用户留存率的关键 本文全面讲解性能优 ...

  6. Android 系统性能优化(41)---Android代码内存优化建议-OnTrimMemory优化

    Android代码内存优化建议-OnTrimMemory优化 OnTrimMemory 回调是 Android 4.0 之后提供的一个API,这个 API 是提供给开发者的,它的主要作用是提示开发者在 ...

  7. Android 性能优化(62)---存检测、卡顿优化、耗电优化、APK瘦身——详解篇

    Android 性能优化,内存检测.卡顿优化.耗电优化.APK瘦身--详解篇 自2008年智能时代开始,Android操作系统一路高歌,10年智能机发展之路,如今 Android 9.0 代号P  都 ...

  8. Android性能优化系列篇(三):崩溃优化+卡顿优化

    前言 汇总了一下众多大佬的性能优化文章,知识点,主要包含: UI优化/启动优化/崩溃优化/卡顿优化/安全性优化/弱网优化/APP深度优化等等等~ 本篇是第三篇:崩溃优化+卡顿优化 [非商业用途,如有侵 ...

  9. 网页 SEO 优化(搜索引擎优化)

    网页 SEO 优化 什么是 SEO? 全称:Search English Optimization,搜索引擎优化 利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名.目的是:为网站提供生态式的自我营 ...

最新文章

  1. JS 时间戳转换成日期
  2. Idea-LifecycleException when deploying
  3. python自动切换链接_windown 使用python 自动切换网络
  4. 【Android 逆向】类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )
  5. Windows服务程序时钟调用
  6. 1.8 Boolean类
  7. java 配置文件加载_Java加载配置文件类
  8. 路由器笔记 CCNA
  9. flowable 数据库表结构 梳理
  10. 删了自己写的代码?判刑10个月!
  11. Beyond Compare 出现“这个许可证密钥已被撤销”的解决办法(不会删除记录)
  12. Nginx 自定义404 页面
  13. 190312每日一句
  14. 整理农行面试软开最常问到的题---------框架
  15. Python 筛法求素数
  16. ASP.NET ZERO 学习 —— (4) 开发手册之AccountController
  17. 科技论文计算机排版格式,科技论文排版参考格式
  18. C++编译错误提示 [Error] name lookup of 'i' changed for ISO 'for' scoping
  19. 2022DASCTF Apr X FATE 防疫挑战赛 部分web复现
  20. 使用Matlab提取ADC数据占空比变化的波形

热门文章

  1. C语言文件英文,c语言文件操作(国外英文资料).doc
  2. 解决问题:cannot create symlink in “/etc/docker“: existing file in the way
  3. 【深入理解C++】头文件防卫式声明
  4. 移动平台动画设计的12个原则
  5. Linux中 安装一些实用小软件总结
  6. word无法验证服务器,Office提示“无法验证此应用程序的许可证”时怎么处理?...
  7. python判断水仙花数函数_Python(6):上机练习——函数练习之水仙花数
  8. 【LeetCode】一年中的第几天
  9. python/appium实现华为应用商城app界面上下滑动打开关闭通知栏等功能
  10. 初探富文本之编辑器引擎