常见性能优化策略

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

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

相关推荐
电商API_180079052471 小时前
反向海淘是什么?现状如何?未来趋势如何?
数据库·人工智能·笔记·性能优化·数据挖掘·网络爬虫
码云之上16 小时前
万星入坞·其三:SDK 轻量组件如何优雅地"点亮"
性能优化·架构·前端框架
这个DBA有点耶16 小时前
SQL改写实战:子查询、CTE、窗口函数性能对比
数据库·mysql·性能优化
Gauss松鼠会17 小时前
GaussDB(DWS) 日常维护命令
服务器·数据库·postgresql·性能优化·gaussdb·经验总结
MU在掘金9169521 小时前
从一把梭 SQL 到维度注册:性能分析采集的工程化之路
性能优化
无心水1 天前
【Harness:全局认知】3、Harness 如何改写软件交付规则?从 52.8% 到 66.5% 的跨越背后
人工智能·性能优化·openclaw·养龙虾·harness·hermes·honcho
Patrick_Wilson1 天前
CLI 工具突然变慢了?别急着怀疑网络,按这四步排查
网络协议·性能优化·命令行
Gauss松鼠会1 天前
GaussDB(DWS) 资源监控Topsql
java·网络·数据库·算法·oracle·性能优化·gaussdb
周易宅1 天前
Docker MySQL 8.0.45 性能优化配置文档
mysql·docker·性能优化
丷丩2 天前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up