有哪些学做衣服的网站,深圳网站seo关键词,学生网页设计模板,自己开网站怎么开对于经常接触高并发服务的同学来学#xff0c;会经常涉及到性能优化#xff0c;但是由于平时很少总结#xff0c;内容会比较分散#xff0c;这里简单做一些总结
1#xff1a;空间换时间
比如一些数据的访问需要很快返回结果#xff0c;原本在磁盘上的数据#xff0c;需…对于经常接触高并发服务的同学来学会经常涉及到性能优化但是由于平时很少总结内容会比较分散这里简单做一些总结
1空间换时间
比如一些数据的访问需要很快返回结果原本在磁盘上的数据需要放到内存里面。
再比如为了能快速超找定位一些数据我么会设计一些hash类的数据结构提高查找效率
另外和这个相反的就是时间换空间当然这种一般就不是高性能服务的常用方法比较典型的就是使用压缩算法了。
2并行/异步处理
并行一般是多线程/多进程/多协程来协作处理提高并发度提高qps或者减少请求 处理时间。
异步通常比同步/阻塞的方式要快也不会比协程慢但是会增加一些代码的理解难度
3预先/延后处理
比如提前读取数据使用的时候能快速返回不用再去读取属于预先处理
延后处理比如copy on write典型的是c string的实现属于写时拷贝。
4缓存/批量合并
常见的cpu缓存cdn缓存程序中的LRU缓存都属于一种缓存技术吧
批量合并典型的是查询数据一次可以执行多条命名如redis的mgetpipeline等
5算法和数据结构
算法这个就比较好理解了n次方的算法事件复杂度和O(n)的算法复杂度执行时间差异还是非常明显的
数据结构比如什么场景适合用vector/list什么场景适合用map/hash_map这也非常重要需要熟悉每种数据结构的原理知道起操作的时间复杂度来选择合适的数据结构