Каково снижение производительности при подключении/отключении общей памяти с усечением на лету?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Каково снижение производительности при подключении/отключении общей памяти с усечением на лету?

Сообщение Anonymous »


Я пытаюсь создать кольцевой буфер с общей памятью (IPC). Это будет использоваться для передачи больших блоков данных другому процессу, причем быстро - блоков размером около 1 МБ со скоростью около 100 блоков в секунду. Я видел, что в большинстве реализаций просто используется предварительно выделенный большой блок общей памяти, который затем разбивается на более мелкие сегменты со смещениями, образуя обычный массив фиксированного размера.

Я хотел бы сделать это немного по-другому: каждый блок, который будет использоваться для передачи, использует отдельный блок общей памяти, а блоки присоединяются и отсоединяются в цикле (синхронизируются по именованным семафорам). Процесс отправителя также может потенциально обрезать блок перед его присоединением.

Какого снижения производительности следует ожидать в таких условиях по сравнению с использованием одного твердотельного блока памяти (без активного подключения/отключения в процессе)?

Мой вопрос скорее заключается в том, часто ли используется реализация с сплошным блоком со срезами только потому, что ее легче идентифицировать по одному имени (поэтому фактический штраф находится в процессе инициализации) или потому, что снижение производительности для операция подключения и отключения блоков памяти существенно нагружает производительность процесса.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»