очередь сообщений и TCP IP Socket. какой IPC быстрее в linux? - PullRequest
0 голосов
/ 04 мая 2018

Я хотел бы знать, какой IPC дает большую производительность в Linux (сокет TCP IP против очереди сообщений). Моя цель состоит в том, чтобы отправлять пакеты данных, содержащие несколько целочисленных значений, через частые интервалы (около 50 мс) из процесса А в Б. Б отправляет некоторые другие пакеты А через интервалы в 5 секунд.

1 Ответ

0 голосов
/ 12 января 2019

Наилучшие результаты вы получите с Shared Memory решением.

Очередь сообщений в 3 раза лучше, чем TCP-сокеты .

Результаты получены с помощью IPC-теста :

  • Система: Linux (Linux Ubuntu 4.4.0 x86_64 i7-6700K 4,00 ГГц)
  • Сообщение: 128 байт
  • Количество сообщений: 1000000

Трубный эталон:

Message size:       128
Message count:      1000000
Total duration:     27367.454 ms
Average duration:   27.319 us
Minimum duration:   5.888 us
Maximum duration:   15763.712 us
Standard deviation: 26.664 us
Message rate:       36539 msg/s

Контрольный показатель FIFO (именованные трубы):

Message size:       128
Message count:      1000000
Total duration:     38100.093 ms
Average duration:   38.025 us
Minimum duration:   6.656 us
Maximum duration:   27415.040 us
Standard deviation: 91.614 us
Message rate:       26246 msg/s

Тест очереди сообщений:

Message size:       128
Message count:      1000000
Total duration:     14723.159 ms
Average duration:   14.675 us
Minimum duration:   3.840 us
Maximum duration:   17437.184 us
Standard deviation: 53.615 us
Message rate:       67920 msg/s

Тест общей памяти:

Message size:       128
Message count:      1000000
Total duration:     261.650 ms
Average duration:   0.238 us
Minimum duration:   0.000 us
Maximum duration:   10092.032 us
Standard deviation: 22.095 us
Message rate:       3821893 msg/s

Тест TCP-сокетов:

Message size:       128
Message count:      1000000
Total duration:     44477.257 ms
Average duration:   44.391 us
Minimum duration:   11.520 us
Maximum duration:   15863.296 us
Standard deviation: 44.905 us
Message rate:       22483 msg/s

Тест доменных сокетов Unix:

Message size:       128
Message count:      1000000
Total duration:     24579.846 ms
Average duration:   24.531 us
Minimum duration:   2.560 us
Maximum duration:   15932.928 us
Standard deviation: 37.854 us
Message rate:       40683 msg/s

Тест ZeroMQ:

Message size:       128
Message count:      1000000
Total duration:     64872.327 ms
Average duration:   64.808 us
Minimum duration:   23.552 us
Maximum duration:   16443.392 us
Standard deviation: 133.483 us
Message rate:       15414 msg/s
...