当前位置: 代码迷 >> 综合 >> 多线程与高并发10-JMH,Disruptor
  详细解决方案

多线程与高并发10-JMH,Disruptor

热度:59   发布时间:2023-12-10 07:07:28.0

JMH

可以进行代码性能测试。进行方法的吞吐量测试。

QPS,TPS

QPS:是Queries Per Second的缩写,意思是每秒查询率(最大吞吐能力)
TPS:是Transactions Per Second的缩写,也就是事务数/秒(最大处理能力)

Disruptor基础理论

分裂瓦解
性能极高,单线程每秒处理600万订单
速度最快的MQ,无锁CAS,单机支持高并发

已以往队列的结构不同,使用环形Buffer。
链表的查询速度肯定是比数组慢的,对比ConcurrentLinkedQueue:链表实现,JDK中却没有ConcurrentArrayQueue,因为数组长度是固定的,队列增加元素会很麻烦。

Disruptor是用数组实现的,并且是收尾相连的,直接覆盖(不用清除)旧的数据,覆盖有8种策略,最多是用Blockingwait,可以降低GC频率。

即RingBuffer,采用数组实现,没有收尾指针。长度同hashMap一样,要求也是2的N次幂在这里插入图片描述