第七期总结
性能测试
主观视角:用户感受到的性能
客观视角:性能指标衡量得性能
性能测试指标:
响应时间
并发数
吞吐量(TPS、HPS、QPS)
性能计数器:System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/0
吞吐量 = (1000/响应时间ms)* 并发数
性能测试方法:
性能测试
负载测试
压力测试
稳定性测试
软件性能优化的两个基本原则
你不能优化一个没有测试的软件
你不能优化一个你不了解的软件
性能优化的一般方法
性能测试,获得性能指标
指标分析,发现性能与资源瓶颈点
架构与代码分析,寻找性能与资源瓶颈关键所在
架构与代码优化,优化关键技术点,平衡资源利用
性能测试,进入性能优化闭环
系统性能优化的分层思想
软件架构性能优化的三板斧
缓存
异步
集群
操作系统
程序运行时架构
程序是静态的
程序运行起来后,被称为进程
操作系统多任务运行环境:进程分时执行
进程的运行期状态
运行
就绪
阻塞
进程VS线程:单进程多线程思路
线程栈与线程安全
临界区:
多个线程访问共享资源的这段代码被称为临界区,将临界区的代码加锁,只有获得锁的线程才能执行临界区的代码
阻塞导致高并发系统崩溃
避免阻塞引起的崩溃:
限流
降级
避免阻塞
锁
锁原语CAS
偏向锁、轻量级锁、重量级锁
总线锁与缓存锁
公平锁、非公平锁
可重入锁
独享锁/互斥锁、共享锁、读写锁
乐观锁、悲观锁
分段锁(JDK ConcurrentHashMap)
自旋锁
文件与硬盘I/O
机械硬盘
固态硬盘
B+树与LSM树
文件控制块
RAID独立硬盘冗余阵列
分布式文件系统HDFS
评论