C#4.0中阻塞收集的性能

本文关键字:性能 C#4 | 更新日期: 2023-09-27 18:27:47

阻塞集合比普通队列堆积得更多。在以下场景中,

  1. 我有一个专门的线程作为一个消费者。

  2. 三个或三个以上专用线程作为生产者。

    我已经检查了Normal Queue(Monitor.Enter…)以及Blocking Collection。

结果:

Both Queues are getting pile up (Obviously , Consumers < Producers)

正常队列在某个时刻自动清除&在2万或3万之后不会继续增加。但是Blocking Collection不断增加,超过数十万,显然我们没有明确的选择,同时我不想限制生产者

谁能发光吗。。

C#4.0中阻塞收集的性能

这是我一直在提的一个建议——试试ZeroMQ。生产者/消费者模式得到了很好的支持(使用PUSH和PULL套接字),而且速度非常快。由于您使用相同的流程,因此无需担心消息丢失。