接口性能优化
一、耗时统计在做接口的性能优化时最重要的是知道时间消耗在哪里。优先使用 Arthas 进行耗时统计。不需要写冗余代码无侵入。https://blog.csdn.net/sinat_32502451/article/details/142960019可以用StopWatch进行耗时统计。需要写一些代码。详情见https://blog.csdn.net/sinat_32502451/article/details/148350451二、链路追踪如果团队使用了Skywalking可以用来进行链路追踪耗时统计。时间主要消耗在哪些服务哪些方法通过traceId一看便知。Skywalking非常有用哪怕项目里没有也可以积极推进并接入Skywalking。三、性能监控如果团队里面有用到一些性能监控的工具比如Grafana、Prometheus。可以多看下接口的请求数、响应时间、服务器的CPU、GcCount等。四、线程池多线程、异步如果多个任务之间不存在先后关系没有强依赖可以使用线程池做多线程、异步。如果接口中存在多个任务可以考虑使用多线程。如果接口中有某个任务比较耗时可以考虑使用异步。CompletableFuture类能够开多线程处理多个任务还能处理异步回调。还能将多个任务合并成一个设置阻塞时间。非常实用。详情见https://blog.csdn.net/sinat_32502451/article/details/133955576线程池调优详情见https://blog.csdn.net/sinat_32502451/article/details/148350537五、MQMQ的使用场景: 异步解耦削峰。如果存在耗时的任务或功能对性能的要求比较高可以使用MQ做异步。线程池也可以异步处理但如果系统挂了线程池也会失效MQ则不会。MQ做异步还有重试机制。六、数据库数据表加索引数据库最常见的优化就是加索引。索引能够极大地提升数据表查询的速度。常用的区分度高的字段可以尝试加索引。如果经常查询的有多个字段可以考虑查询条件是否符合最左匹配原则符合的话用复合索引。批量处理–数据表接口代码在做批量处理时一定要注意不要在for循环中调用数据库/缓存不仅性能极差还有连接数耗尽的可能。数据表的批量处理详情见https://blog.csdn.net/sinat_32502451/article/details/148350849Explain接口中的sql比较慢时可以用 Explain查看执行计划做性能优化。详情见 https://segmentfault.com/a/1190000008131735分库分表数据表的数据量大可以分库分表。详情见 https://blog.csdn.net/sinat_32502451/article/details/140732625七、缓存加缓存Redis缓存的处理速度远远快于数据库/网络这些IO。在做性能优化时如果数据库/网络太慢经常会用到Redis缓存。加缓存有几点要注意1.如果在查询时使用了缓存那么在更新(删除、插入)之后必须处理缓存(一般是更新DB后删除缓存)让数据最终一致。2.实时数据频繁更新的数据最好不要加缓存。3.如果不是频繁更新的数据又没法在数据变更时处理缓存比如调用其他系统的接口可以尝试加较短时间的缓存比如1分钟。详情见 https://blog.csdn.net/sinat_32502451/article/details/139545057批量处理–缓存Redis的execute()可以在一次连接中处理多个命令。Redis的execute()详情见https://blog.csdn.net/sinat_32502451/article/details/134366504Pipeline (管道) 可以一次性发送多条命令并在执行完后一次性将结果返回。Redis的管理操作详情见: https://blog.csdn.net/sinat_32502451/article/details/134366490数据预热使用定时任务定时去查询数据或者是通过前置过滤器提前预热。查询之后数据进入缓存那么用户再去查时速度就会快很多。这也是一种很常见的性能优化方式。·八、服务器服务器的状态服务器是否正常启动。在调用接口时服务器的CPU、GcCount是否正常。九、优化服务链路如果接口的服务链路比较复杂可以试着优化服务链路。比如A服务中分别调用了B,C,D服务那可以试着将BCD服务的内容合并到一个服务中只做一次调用。比如服务链路为 A-B-C-D可以试着缩短服务链路由 A-D这样消耗的时间也会变短。十、去掉冗余逻辑如果接口复用了项目中其他的方法/代码可以看是否有冗余的逻辑如果有冗余的考虑能否抽取可用逻辑去掉冗余的逻辑。

相关新闻

Delon表单组件ST使用教程:3分钟打造专业数据表格

Delon表单组件ST使用教程:3分钟打造专业数据表格

Delon表单组件ST使用教程:3分钟打造专业数据表格 【免费下载链接】delon Delon is a set of essential modules for ng-alain. https://github.com/ng-alain/ng-alain/issues 项目地址: https://gitcode.com/gh_mirrors/de/delon Delon是ng-alain的核心模块集…

2026/8/7 19:17:10 阅读更多 →
突破Mac网络限制:深度解析HoRNDIS驱动的5大实战应用场景

突破Mac网络限制:深度解析HoRNDIS驱动的5大实战应用场景

突破Mac网络限制:深度解析HoRNDIS驱动的5大实战应用场景 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS 在Mac上实现Android手机USB网络共享的专业解决方案——HoRNDIS驱动&…

2026/8/7 19:17:10 阅读更多 →
onetimepass未来路线图:社区贡献与功能规划展望

onetimepass未来路线图:社区贡献与功能规划展望

onetimepass未来路线图:社区贡献与功能规划展望 【免费下载链接】onetimepass One-time password library for HMAC-based (HOTP) and time-based (TOTP) passwords 项目地址: https://gitcode.com/gh_mirrors/on/onetimepass onetimepass作为一款专注于HMAC…

2026/8/7 19:16:10 阅读更多 →

最新新闻

如何3分钟上手online-markdown?新手必备的微信公众号排版神器

如何3分钟上手online-markdown?新手必备的微信公众号排版神器

如何3分钟上手online-markdown?新手必备的微信公众号排版神器 【免费下载链接】online-markdown 在线Markdown转微信公众号内容工具 项目地址: https://gitcode.com/gh_mirrors/onl/online-markdown online-markdown是一款专为微信公众号运营者打造的Markdow…

2026/8/7 20:09:29 阅读更多 →
SPECTER2_aug2023refresh_base训练秘籍:从600万引文三元组到高效适配器微调

SPECTER2_aug2023refresh_base训练秘籍:从600万引文三元组到高效适配器微调

SPECTER2_aug2023refresh_base训练秘籍:从600万引文三元组到高效适配器微调 【免费下载链接】specter2_aug2023refresh_base 项目地址: https://ai.gitcode.com/hf_mirrors/LLM-Research/specter2_aug2023refresh_base SPECTER2_aug2023refresh_base是一款基…

2026/8/7 20:09:29 阅读更多 →
Underscore.php性能优化:如何避免常见的效率陷阱

Underscore.php性能优化:如何避免常见的效率陷阱

Underscore.php性能优化:如何避免常见的效率陷阱 【免费下载链接】Underscore.php PHP port of Underscore.js 项目地址: https://gitcode.com/gh_mirrors/un/Underscore.php Underscore.php作为PHP版的Underscore.js,是一款功能强大的工具库&…

2026/8/7 20:09:29 阅读更多 →
解密π₀ (Pi0) LeRobot配置文件:关键参数如何影响机器人行为

解密π₀ (Pi0) LeRobot配置文件:关键参数如何影响机器人行为

解密π₀ (Pi0) LeRobot配置文件:关键参数如何影响机器人行为 【免费下载链接】pi0_libero_base 项目地址: https://ai.gitcode.com/hf_mirrors/lerobot/pi0_libero_base π₀ (Pi0) LeRobot是一个功能强大的机器人控制框架,其配置文件直接决定了…

2026/8/7 20:09:29 阅读更多 →
为什么选择MLX框架?Inkling-Small-mlx-2bit在Apple Silicon上的5大优势解析

为什么选择MLX框架?Inkling-Small-mlx-2bit在Apple Silicon上的5大优势解析

为什么选择MLX框架?Inkling-Small-mlx-2bit在Apple Silicon上的5大优势解析 【免费下载链接】Inkling-Small-mlx-2bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Inkling-Small-mlx-2bit Inkling-Small-mlx-2bit是基于MLX框架构建的2bit量…

2026/8/7 20:09:29 阅读更多 →
Agent Governance Toolkit命令行工具详解:高效管理AI代理策略

Agent Governance Toolkit命令行工具详解:高效管理AI代理策略

Agent Governance Toolkit命令行工具详解:高效管理AI代理策略 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents…

2026/8/7 20:08:29 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →