原文:
大型网站技术架构 构建高性能的网站 优化方案
之前有介绍性能优化的概念,为什么进行性能优化,这张主要介绍怎样进行性能优化
性能优化是个比较大的范围,由于个人技术有限,只从程序代码的角度粗浅的做个简单的介绍,不涉及服务器,部署方案,业务架构,技术架构等方面
常用方案参考
缓存
没有什么性能问题是缓存解决不了的,如果有,那就再加一级缓存(这是典型的空间换时间的解决方案) 基于内存访问速度比硬盘快
并发
一个人干不完的活,那就两个人来干(增加了系统的吞吐量,减少了用户的平均等待时间) 粒度(多机器,多进程,多线程)
- 无状态服务 集群方案,部署多台服务器
- 有状态服务 部署多个节点,可以每个节点提供同样的数据或每个节点只提供部分数据
惰性计算
将计算推迟到必须的时刻(很可能避免了多余的计算,甚至根本不用计算)
批量合并
在IO(网络IO,磁盘IO)的时候,合并操作,批量操作往往能提升吞吐,提高性能
缩小解空间
在一个更小范围的数据范围内进行计算,而不是遍历全部数据
记录(前端,代码,存储优化)
前端优化
- 减少HTTP请求数
- 使用浏览器缓存
- CSS放在头部,JS放在尾部
- JS异步访问
- 减少cookie传输
- CDN加速
- 静态分离
代码优化
- 多线程操作
- 资源复用(对象池,线程池)
- 良好的数据结构
- JVM调用
- 单例
- 缓存
存储优化
- 缓存
- 固态硬盘
- 光纤传输
- 优化读写
- 磁盘冗余
- 分布式存储
- 非结构化数据(nosql)