Производительность Blocking Collection в C # 4.0 - PullRequest
0 голосов
/ 13 марта 2012

Блокирующих коллекций становится больше, чем обычных очередей.В следующем сценарии,

  1. У меня есть выделенный поток как потребитель.
  2. Три или более выделенных потоков как производитель.

    Я проверил с помощью NormalОчередь (Monitor.Enter ...), а также Blocking Collection.

Результаты:

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

Обычные очереди автоматически очищаются в некоторый момент &не увеличиваться после 20000 или 30000. Но Blocking Collection продолжают увеличиваться более чем на сотни тысяч, и, очевидно, у нас нет четкой возможности, в то же время я не хочу ограничивать производителя

Можетлюбой пролить свет ..

1 Ответ

1 голос
/ 13 марта 2012

Это предложение, которое я продолжаю делать - попробуйте ZeroMQ .Модель производителей / потребителей хорошо поддерживается (используйте сокеты PUSH и PULL), и она будет невероятно быстрой.Поскольку вы используете тот же процесс, вам не о чем беспокоиться.

...