2010-01-17 4 views
2

У меня проблема с boost::interprocess::string в общей памяти.Общая память и строки: управляемый?

Когда я использую shared_memory_object, я могу манипулировать структурой с разными полями, НО строки (я получаю ошибку сегментации).
С другой стороны, когда я использую managed_shared_memory, все в порядке.

Я что-то не так? Знаете ли вы, если есть штраф за выполнение, используя managed_shared_memory?

Спасибо!

ответ

1

Для использования строк в импульсном процессе, см. this question.

Что касается производительности, оно должно быть лучше, чем большинство других решений - это причина, по которой оно существует, - делиться памятью между процессами. У каждого другого способа совместного использования данных между процессами были бы накладные расходы, которые не нужны для разделяемой памяти (заголовок пакета + IO для TCP, разворот DB для DB и т. Д.)