与JDK队列PK一下性能,结果有点让人感到意外

女生的网名这么多〃 提交于 2020-07-27 22:42:27

队列类: https://github.com/Chris2018998/BeeCP/blob/master/src/main/java/cn/beecp/util/FastTransferQueue.java
 

测试机器

CPU:  I5-4210M(2.6赫兹,双核4线程)
内存: 8G
OS:  win7_64
JDK: Java1.8.0_65-b17
BeeCP版本:2.4.9

测试1:数据包传递测试(数据包起飞计时开始,到达计时结束

1:创建1000个消费线程,并执行Poll(Long.MAX_VALUE,TimeUnit.SECONDS);//处于阻塞状态

2:让主控线程延迟5秒,保证1000个消费线程处于处于阻塞状态

3:创建10个生产者线程,不停往队列中写数据(数据包传递时开始计时,单位:纳秒)

4:1000个消费者都消费一次(读取一个数据包)

5:统计1000个数据包的飞行时间之和,并计算每次平均时间,随机抽取一次结果如下

测试类: https://github.com/Chris2018998/BeeCP/blob/master/src/test/java/cn/beecp/test/queue/QueueTransferTest.java

测试2:队列读写测试

创建1000个线程,每个线程并往队列中写(offer)10000次和读10000次(poll),最后统计各线程的平均读写时间

测试类: https://github.com/Chris2018998/BeeCP/blob/master/src/test/java/cn/beecp/test/queue/QueueWriteReadTest.java

 

Tag:BeeCP

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!