高性能设计

31 阅读1分钟

1、设计·秘籍·

image.png 从中可以看到,高性能设计的手段还是非常多,从”微观设计”上的无锁化、序列化,到”宏观设计”上的缓存、存储等,可以说是五花八门,令人眼花缭乱。但是在我看来本质就两点:计算和IO。下面将从这两点来浅析一下我认为的高性能的”道”。

2、道法

2.1 计算上的”道”

计算上的优化手段无外乎两种方式:1.减少计算量 2.加快单位时间的计算量

  • 减少计算量:比如用索引来取代全局扫描、用同步代替异步、通过限流来减少请求处理量、采用更高效的数据结构和算法等。(举例:mysql的BTree,redis的跳表等)
  • 加快单位时间的计算量:可以利用CPU多核的特性,比如用多线程代替单线程、用集群代替单机等。(举例:多线程编程、分治计算等)

2.2 IO上的”道”

IO上的优化手段也可以从两个方面来体现:1.减少IO次数或者IO数据量 2.加快IO速度

  • 减少IO次数或者IO数据量:比如借助系统缓存或者外部缓存、通过零拷贝技术减少 IO 复制次数、批量读写、数据压缩等。

  • 加快IO速度:比如用磁盘顺序写代替随机写、用 NIO 代替 BIO、用性能更好的 SSD 代替机械硬盘等。