Week 07 总结
性能测试:
是性能优化的前提和基础
性能优化结果的检查
性能优化结果的度量标准
网站性能指标
响应时间
并发数
吞吐量
性能计数器
吞吐量
单位时间内系统处理的请求数量,体现系统的处理能力
以请求数/秒或页面数/秒来衡量,也可以用访问人数/天,或处理业务数/小时
TPS:每秒事务数
HPS:每秒HTTP请求数
QPS:每秒查询数
吞吐量=(1000/响应时间ms) x 并发数
性能计数器
描述服务器或操作系统性能的一些数据指标
包括System Load, 对象与线程数、内存使用、CPU使用、磁盘与网络I/O指标
性能测试方法
性能测试
负载测试
压力测试
稳定性测试
数据隔离
逻辑隔离
虚拟隔离
物理隔离
软件性能优化的两个基本原则
你不能优化一个没有测试的软件
你不能优化一个你不了解的软件
性能优化的一般方法
性能测试,获得性能指标
指标分析,发现性能与资源瓶颈点
架构与代码分析,寻求性能与资源瓶颈关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能闭环
系统性能优化的分层思想
机房与骨干网络性能优化
服务器与硬件性能优化
操作系统性能优化
虚拟机性能优化
基础组件性能优化
软件架构性能优化
软件代码性能优化
软件架构性能优化三板斧
缓存
异步
集群
软件代码性能优化
遵循面向对象的设计原则与设计模式编程,很多时候程序性能不好不是因为性能上有什么技术挑战,仅仅就是因为代码写的太烂了。
并发编程,多线程与锁
资源复用,线程池与对象池
异步编程,生产者消费者
数据结构,数组,链表,hash表,树
程序运行时架构
程序是静态的
程序运行起来以后,被称作进程。
进行的运行期状态
运行
就绪
阻塞
临界区
多个线程访问共享资源的这段代码被称作临界区,解决线程安全问题的主要方法是使用锁,将临界区的代码加锁,只有获得锁的线程才能执行临界区代码。
锁
偏向锁
轻量级锁
重量级锁
总线锁与缓存锁
公平锁与非公平锁
可重入锁
独享锁/互斥锁 共享锁 读写锁
乐观锁 悲观锁
分段锁
自旋锁
评论