Telegram Group & Telegram Channel
Кресты на моей кукухе
Некрасивая метрика, проблему с которой я сходу (к своему стыду) не понял — время от отправки сообщения до его чтения. На старой очереди это было <1 мкс, на новой >40мкс в медиане. Ночью меня осенило: я же разогнал писателей. Читатель снова стал захлёбываться.…
В общем, схематоз:

Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов
Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы

Битсет имеет операции push(index) и take_any() -> optional<size_t>
Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому
1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика)
2. каждый поток имеет свой "родной" блок

На take_any() мы ищем битик в родном блоке. Если не нашли — начинаем проходить по чужим блокам. Прошли круг и ничего не нашли — очень жаль, вываливаемся

Есть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться

Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо



group-telegram.com/no_brain_cpp/541
Create:
Last Update:

В общем, схематоз:

Было: MPMC FAA-очередь занятых элементов + такая же очередь свободных элементов
Стало: MPMC FAA-очередь занятых элементов + битсет, отвечающий за свободные элементы

Битсет имеет операции push(index) и take_any() -> optional<size_t>
Выглядит как массив атомиков, в которых один битик соответствует одному индексу. Я хотел минимизировать контеншн, потому
1. массив побит на блоки по 16 атомиков (128 байт, 1024 элемента-битика)
2. каждый поток имеет свой "родной" блок

На take_any() мы ищем битик в родном блоке. Если не нашли — начинаем проходить по чужим блокам. Прошли круг и ничего не нашли — очень жаль, вываливаемся

Есть у меня большие сомнения в линеаризуемости этого добра) Хотя пока читатель один, должно сходиться

Дальше буду смотреть, есть ли прок от замены MPMC очереди на MPSC, раз мне больше всё равно не надо

BY Кресты на моей кукухе




Share with your friend now:
group-telegram.com/no_brain_cpp/541

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Individual messages can be fully encrypted. But the user has to turn on that function. It's not automatic, as it is on Signal and WhatsApp. Apparently upbeat developments in Russia's discussions with Ukraine helped at least temporarily send investors back into risk assets. Russian President Vladimir Putin said during a meeting with his Belarusian counterpart Alexander Lukashenko that there were "certain positive developments" occurring in the talks with Ukraine, according to a transcript of their meeting. Putin added that discussions were happening "almost on a daily basis." Pavel Durov, Telegram's CEO, is known as "the Russian Mark Zuckerberg," for co-founding VKontakte, which is Russian for "in touch," a Facebook imitator that became the country's most popular social networking site. Emerson Brooking, a disinformation expert at the Atlantic Council's Digital Forensic Research Lab, said: "Back in the Wild West period of content moderation, like 2014 or 2015, maybe they could have gotten away with it, but it stands in marked contrast with how other companies run themselves today." Russians and Ukrainians are both prolific users of Telegram. They rely on the app for channels that act as newsfeeds, group chats (both public and private), and one-to-one communication. Since the Russian invasion of Ukraine, Telegram has remained an important lifeline for both Russians and Ukrainians, as a way of staying aware of the latest news and keeping in touch with loved ones.
from us


Telegram Кресты на моей кукухе
FROM American