目录
  1. 1. 前端性能
    1. 1.1. 加载方面
    2. 1.2. 渲染执行
  2. 2. 后端性能调优
    1. 2.1. 基础环境
    2. 2.2. 应用程序
    3. 2.3. 数据库
    4. 2.4. 替代框架、容器

性能优化对于有一定生命周期的软件来说是个绕不过去的砍,也是软件走向成熟的标记。

性能优化有一定的成本,所以在初期,可以只做少量影响较大的部分,后续不断叠加,兼顾效益。

前端性能

加载方面

  • 资源合并压缩
  • 合适的图片格式
  • http/2多路复用
  • cdn - 从最靠近用户的地方加载
  • dns预加载

渲染执行

  • css选择器选用 - 不同类型选择器的速度差很多
  • 高性能js框架 - 如带虚拟dom的reactjs、vuejs
  • 图片/内容延迟加载 - 首屏看得见的图片优先显示,反之可延后

后端性能调优

基础环境

基础软硬件方面

  • 在不浪费的前提下,越强的硬件性能越强
  • 对于硬件达到瓶颈的情况,可通过关闭核心非必要软件、增加虚拟内存swap等方式缓解

应用程序

  • 多级缓存
  • 程序逻辑、算法优化
  • 减少、合并数据库/IO请求次数
  • 数据库连接池
  • 多线程/进程处理,避免阻塞
  • 采用更高效开发语言 - 如nodejs的事件机制,处理socks请求比java等语言效益更好

数据库

  • sql查询优化
  • no-sql数据库
  • 集群部署

替代框架、容器

  • ndoejs使用pm2等具有多进程管理能力的工具运行
  • php使用基于c的高性能phalcon框架,facebook的hhvm框架
  • java使用netty框架、nio方式等实现高并发