лок на запись?
Или просто взять ConcurrentDictionary ? -_-
Рекомендую оптимизировать только после профилирования
На куче потоков катастрофа при интенсивной модификации.
Мне кажется что кучей потоков можно любую коллекцию положить) Т.к. у тебя уже физические штуки начинают играть роль. Долбёжка в одну и ту же область памяти, постоянные инвалидации кешей и так далее
Именно. Поэтому ушел в lock free настоящий, разделил один ConcurrentDictionary на список обычных Dictionary, каждый из которых регистрируется по ThreadId с блокировкой в обычном Dictionary, а дальше каждый поток берет по ThreadId без блокировки свой Dictionary и модифицирует без каких-то блокировок свой Dictionary, а дальше уже фаза коммита всей этой прорвы Dictionary, и это сильно быстрее одного ConcurrentDictionary
Обсуждают сегодня