常见性能优化策略

对于经常接触高并发服务的同学来学,会经常涉及到性能优化,但是由于平时很少总结,内容会比较分散,这里简单做一些总结

1:空间换时间

比如一些数据的访问需要很快返回结果,原本在磁盘上的数据,需要放到内存里面。

再比如为了能快速超找定位一些数据,我么会设计一些hash类的数据结构,提高查找效率

另外和这个相反的就是时间换空间,当然这种一般就不是高性能服务的常用方法,比较典型的就是使用压缩算法了。

2:并行/异步处理

并行一般是多线程/多进程/多协程来协作处理,提高并发度,提高qps,或者减少请求 处理时间。

异步通常比同步/阻塞的方式要快,也不会比协程慢,但是会增加一些代码的理解难度

3:预先/延后处理

比如提前读取数据,使用的时候能快速返回,不用再去读取,属于预先处理

延后处理,比如copy on write,典型的是c++ string的实现,属于写时拷贝。

4:缓存/批量合并

常见的cpu缓存,cdn缓存,程序中的LRU缓存,都属于一种缓存技术吧

批量合并,典型的是查询数据,一次可以执行多条命名,如redis的mget,pipeline等

5:算法和数据结构

算法这个就比较好理解了,n次方的算法事件复杂度和O(n)的算法复杂度,执行时间差异还是非常明显的

数据结构,比如什么场景适合用vector/list,什么场景适合用map/hash_map这也非常重要,需要熟悉每种数据结构的原理,知道起操作的时间复杂度,来选择合适的数据结构

相关推荐
夜月yeyue11 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
美狐美颜SDK开放平台12 小时前
直播美颜sdk源码解析:动态贴纸功能开发与性能优化
性能优化
想学后端的前端工程师12 小时前
【React性能优化实战指南:从入门到精通-web技术栈】
前端·react.js·性能优化
小小测试开发16 小时前
实战派SQL性能优化:从语法层面攻克项目中的性能瓶颈
android·sql·性能优化
love is sour19 小时前
深入浅出 jmap:Java 内存分析的“显微镜“
java·开发语言·测试工具·性能优化
DemonAvenger20 小时前
Redis与MySQL双剑合璧:缓存更新策略与数据一致性保障
数据库·redis·性能优化
武子康1 天前
Java-205 RabbitMQ 工作模式实战:Work Queue 负载均衡 + fanout 发布订阅(手动ACK/QoS/临时队列)
java·性能优化·消息队列·系统架构·rabbitmq·java-rabbitmq·mq
云边有个稻草人1 天前
金仓数据库全链路性能优化:从SQL到存储的效率提升方案
性能优化·国产数据库·金仓数据库·kes
-大头.1 天前
SQL性能优化与索引策略实战
数据库·sql·性能优化
郝学胜-神的一滴1 天前
Linux C++ 守护进程开发指南
linux·运维·服务器·开发语言·c++·程序人生·性能优化