当前位置: 首页 > news >正文

常见性能优化策略

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

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这也非常重要,需要熟悉每种数据结构的原理,知道起操作的时间复杂度,来选择合适的数据结构

http://www.lryc.cn/news/300372.html

相关文章:

  • 【微信小程序】微信小程序开发:从入门到精通
  • 【经验】STM32的一些细节
  • ubuntu22.04安装部署03: 设置root密码
  • 【lesson56】生产者消费者模型
  • MySQL5.7升级到MySQL8.0的最佳实践分享
  • Rust 数据结构与算法:5栈:用栈实现前缀、中缀、后缀表达式
  • 作业day6
  • 前方预警!2024年七大网络安全威胁
  • 绿色化 数据库 MongoDB 和 mysql 安装
  • npm install 一直卡着不动如何解决
  • 电路设计(15)——篮球赛24秒违例倒计时报警器的proteus仿真
  • golang 集成sentry:http.Client
  • 设计链表(不难,代码稍微多一点)
  • [GXYCTF2019]禁止套娃
  • ubuntu下如何查看显卡及显卡驱动
  • 【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目
  • 【AIGC】Stable Diffusion的采样器入门
  • 【Python】通过conda安装Python的IDE
  • 基于HTML5实现动态烟花秀效果(含音效和文字)实战
  • 「数据结构」栈和队列
  • 【机器学习笔记】5 机器学习实践
  • C++ //练习 7.5 在你的Person类中提供一些操作使其能够返回姓名和住址。这些函数是否应该是const的呢?解释原因。
  • python系统学习Day2
  • 学习笔记——ENM模拟
  • 数值类型的运算方式总结
  • 【Redis快速入门】Redis三种集群搭建配置(主从集群、哨兵集群、分片集群)
  • [嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux
  • 基于AI Agent探讨:安全领域下的AI应用范式
  • Stable Diffusion 模型下载:ToonYou(平涂卡通)
  • 机器学习:分类决策树(Python)