169 похожих чатов

А стоит взять мутабельный ради перформанса и завернуть в любой

лок на запись?

5 ответов

8 просмотров

Или просто взять ConcurrentDictionary ? -_-

Рекомендую оптимизировать только после профилирования

IdiocyAcceptance
Или просто взять ConcurrentDictionary ? -_-

На куче потоков катастрофа при интенсивной модификации.

👽
На куче потоков катастрофа при интенсивной модифик...

Мне кажется что кучей потоков можно любую коллекцию положить) Т.к. у тебя уже физические штуки начинают играть роль. Долбёжка в одну и ту же область памяти, постоянные инвалидации кешей и так далее

IdiocyAcceptance
Мне кажется что кучей потоков можно любую коллекци...

Именно. Поэтому ушел в lock free настоящий, разделил один ConcurrentDictionary на список обычных Dictionary, каждый из которых регистрируется по ThreadId с блокировкой в обычном Dictionary, а дальше каждый поток берет по ThreadId без блокировки свой Dictionary и модифицирует без каких-то блокировок свой Dictionary, а дальше уже фаза коммита всей этой прорвы Dictionary, и это сильно быстрее одного ConcurrentDictionary

Похожие вопросы

Обсуждают сегодня

кому не сложно распишите пожалуйста для какой цели тут вот эти скобки и в них пихается указатель?
Михаил Helper
15
Комрады, посоветуйте, куда копать? Стал прикручивать кастомизацию тем. В OnShow главной главной формы пытаюсь загрузить из файла настроек и применить тему (на скрине, как долж...
Ed Doc
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
OnShow один раз вызывается? или возможен Hide?
Iluha Companets
14
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
Карта сайта