Muszę zaimplementować standardowy algorytm jednego konsumenta. Mogę go łatwo zaimplementować przy użyciu Queue
i kilku instrukcji lock
. Lub mogę po prostu użyć ConcurrentQueue
. Co jest lepsze?wydajność ConcurrentQueue vs Queue + lock
Queue + lock
Jeśli jest używany wtedy mogę zoptymalizować „wielokrotne dodawanie/retreival”, ponieważ mogę lock
raz, a potem Add
wiele razy.
Co jest szybciej w ogólnym przypadku - ConcurrentQueue
lub Queue + lock
i jaka jest różnica? Oczywiście ConcurrentQueue
jest najbardziej prostą drogą do przodu, ale nie chcę stracić dużej wydajności, ponieważ używam tego w aplikacji handlu HFT.
Po pierwsze, wydajność jest związana z liczbą procesorów. Trudno jest ocenić wydajność aplikacji wielowątkowej w pewnym trybie abstrakcyjnym. – user1929959
A co z mierzeniem w twoim otoczeniu? Mogę podać ci numery, które dowodzą czegokolwiek na mojej maszynie. –