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

Всем привет. Простой вопрос. Как эффективно хранить некоторое множество уникальных

значений, при этом выполняя запись конкурентно
Я сейчас использую map[string]int и перед записью при помощи мьютекса блокирую запись другими. Есть ли более продвинутый контейнер? Жалко терять 50% производительности на этом моменте.

10 ответов

6 просмотров

sync.Map еще можешь поискать lockfree hash table

Нет, ничего более продвинутого нет и быть не может

Алтынбек Шарипов
sync.Map еще можешь поискать lockfree hash table

У нее в доке написано, что она не для этого

Daniel Podolsky
У нее в доке написано, что она не для этого

when multiple goroutines read, write, and overwrite entries for disjoint sets of keys разве нет этот кейс?

Алтынбек Шарипов
sync.Map еще можешь поискать lockfree hash table

так sync.Map тоже на мьютексе. не высок выигрыш я думаю

А что в интах? Зачем вам эта мапа?

Ctrie

А вообще для чего? Есть библиотеки для кеша, которы параллелят. Создают несколько мап и шардируют данные.

Nikolai Kiselev- Автор вопроса

Я решил проблему хитростью. Я пишу в канал, и отдельной рутиной оттуда собираю данные и размещаю в мапу пачкой каждые несколько миллисекунд. Бенчмарк: channelTrick=81.65, map=93.53, syncMap=94.34 Могу в ЛС кинуть подробный скрин бенча. Пишите.

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

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

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Всем привет! Кто нибудь парсил в ручную JSON без библиотек и фреймворков? Есть может ссылки на оптимальный алгоритмы работы с текстом и примеры таких парсеров?
Lem
27
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
Есть сайт. Там была древняя версия эво. Стоял плагин, который каждый коммент в Jot делал отдельной страницей. После обновления все слетело, теперь старница открывается отдельн...
Artem
1
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
Добрый день. А shovel'ы можно как-то сконфигурировать в definitions.json? Пробовал что-то вроде: { "users": [ { "name": "agent", "password_hash": "RBCbTzQd...
Aleksey
1
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Карта сайта