WebApi 性能优化
@[toc]
一、WebApi 调优
什么是 WebApi 调优
当浏览器端请求 WebApi 服务端读写数据需要耗费时间,将耗费的时间缩短,就称之为 WebApi 调优。
如图:
目的提升 WebApi 的性能。
二、WebApi 应用场景
场景
前后端分离的项目。
三、WebApi 性能瓶颈定位
定位性能瓶颈
请看 NetCore 性能排查文章:https://blog.csdn.net/Fu_Shi_rong/article/details/123733415?spm=1001.2014.3001.5501
四、WebApi 性能优化手段一-本地缓存
单体项目
如图:
实现
设计思路
查询使用时先看本地缓存有无数据,有数据直接返回,无数据时到数据库查询,将查询到的数据添加到本地缓存中并将数据返回给浏览器端
优点与缺点
缺点
Memory 是服务器内存中的缓存,如果并发量大并查询的数据又不一致,会造成内存非常的大 ,同时会造成 GC 不断地回收这个内存,由于 Memory 内部使用的静态变量造成内存无法回收,GC 每回收一次,就会消耗一次 CPU 资源,如果 GC 回收的频率比较大,那消耗的 CPU 资源也会变大,例如:现在的 CPU 的使用率为 100%,GC 消耗了 70%CPU 资源,那我们的吞吐量只有 30%,那处理请求的性能大幅度的下降。
解决方案
用时间换空间的方法来解决,给缓存设置时间。
设置缓存大小
设置单个缓存大小,并设置自动失效时间
优点
数据读写速度时间缩短,性能得到提升。
实现步骤
安装缓存 Nuget 包
Startup 注册
在使用的场景进行注入
解决第一次请求耗时解决方案
将项目启动的时候,将数据库中的数据添加到缓存中
代码实现
五、WebApi 性能优化手段二-分布式缓存
方案
请看这篇文章。https://blog.csdn.net/Fu_Shi_rong/article/details/123930343?spm=1001.2014.3001.5501
六、WebApi 性能优化手段三-Http 缓存(响应缓存)
方案
协商缓存
安装 Nuget 包
强制缓存 [不常用]
步骤
安装 Nuget 包
场景
字典数据
静态资源 图片等
js 或 css 文件
七、WebApi 性能优化手段四-数据压缩(响应)
步骤
在 Startup 类 ConfigureServices 方法中注册
在 Startup 类 Configure 方法中开启服务
数据压缩的目的
数据传输的时候,减少传输的带宽,提升性能。
场景
只要涉及到数据传输都可以用数据压缩。
版权声明: 本文为 InfoQ 作者【神秘码农】的原创文章。
原文链接:【http://xie.infoq.cn/article/9de86a4a282c24fc6c6c03811】。未经作者许可,禁止转载。
评论