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