Ответ 1
Да, локальная межпроцессная связь сокетами unix домена должна быть быстрее, чем связь через соединения localhost loopback, потому что у вас меньше накладных расходов TCP, см. здесь и .
Работа с приложениями на базе Android и iOS, которые требуют связи с сервером, работающим на одном устройстве. В настоящее время используется соединение TCP loopback для связи с App and Server (приложение, написанное на пользовательском уровне, сервер, написанный на С++ с помощью Android NDK)
Мне было интересно, улучшит ли производительность обмен данными с Unix-доменом?
Или в общем есть ли какие-либо доказательства/теории, доказывающие, что сокет Unix Domain даст лучшую производительность, чем TCP loopback-соединение?
Да, локальная межпроцессная связь сокетами unix домена должна быть быстрее, чем связь через соединения localhost loopback, потому что у вас меньше накладных расходов TCP, см. здесь и .
Этот тест: https://github.com/rigtorp/ipc-bench предоставляет тесты задержки и пропускной способности для сокетов TCP, доменных сокетов Unix (UDS) и PIPE.
Here you have the results on a single CPU 3.3GHz Linux machine :
TCP average latency: 6 us
UDS average latency: 2 us
PIPE average latency: 2 us
TCP average throughput: 0.253702 million msg/s
UDS average throughput: 1.733874 million msg/s
PIPE average throughput: 1.682796 million msg/s
Сокращение задержки на 66% и почти в 7 раз больше объясняют, почему большинство программного обеспечения, критичного к производительности, имеет собственный протокол IPC.
Redis тест показывает доменный сокет Unix может быть значительным быстрее, чем TCP шлейф.
Когда серверные и клиентские тестовые программы выполняются в одном и том же окне, могут использоваться как петлевые TCP/IP, так и доменные сокеты unix. В зависимости от платформы сокеты домена unix могут достигать примерно на 50% большей пропускной способности, чем петля TCP/IP (например, в Linux). Поведение redis-benchmark по умолчанию заключается в использовании обратной связи TCP/IP.
Однако это различие имеет значение только при высокой пропускной способности.
Сокеты домена Unix часто в два раза быстрее, чем TCP-сокет, когда оба одноранговых узла находятся на одном хосте. Протоколы домена Unix не являются фактическим набором протоколов, а способ взаимодействия между клиентом и сервером на одном хосте с использованием того же API, который используется для клиентов и серверов на разных хостах. Протоколы домена Unix являются альтернативой методам межпроцессной связи (IPC).