2014-02-05 3 views
0

Насколько я понимаю, если используемая память используется правильно, она может быть быстрее любого другого IPC. Мой вопрос немного конкретнее: если я переношу многие небольшие пакеты, например, 100 байт, из разных программ в одну основную программу, какую скорость можно ожидать?TCP против общей памяти?

+0

Почему бы вам не проверить его? Это звучит как очень простой тест ... –

+3

Возможно, около 12%. –

+0

@ Kerrek SB: почему 12%? – JoeFrom

ответ

2

Преимущества использования разделяемой памяти не так много, потому что в конечном итоге вы получите условные переменные в общей памяти (см. pthread_condattr_setpshared; кстати, это будет существенная работа по кодированию). Тогда ваша логика управляется планировщиком ОС и не очень отличается от использования TCP-соединения localhost, которое имеет большую и быструю реализацию, чем стандартный TCP на большинстве ОС.

Если все в порядке, чтобы полностью полагаться на спин-блокировку на общей памяти, то вы действительно осознаете существенную скорость, например, x3 fold.

Смежные вопросы