Bei der Auswahl Ihres IPCs sollten Sie die Gründe für Leistungsunterschiede berücksichtigen, einschließlich Übertragungspuffergrößen, Datenübertragungsmechanismen, Speicherzuweisungsschemata, Sperrmechanismusimplementierungen und sogar Codekomplexität.
Von den verfügbaren IPC-Mechanismen hängt die Wahl der Leistung oft von Unix-Domain-Sockets oder Named Pipes (FIFOs) ab. Ich habe einen Artikel über die Leistungsanalyse verschiedener Mechanismen für die Kommunikation zwischen Prozessen gelesen, der darauf hinweist, dass Unix-Domain-Sockets für IPC möglicherweise die beste Leistung bieten. Ich habe anderswo widersprüchliche Ergebnisse gesehen, die darauf hindeuten, dass Rohre besser sein könnten.
Beim Senden kleiner Datenmengen bevorzuge ich Named Pipes (FIFOs) wegen ihrer Einfachheit. Dies erfordert ein Paar Named Pipes für die bidirektionale Kommunikation. Unix-Domain-Sockets erfordern etwas mehr Aufwand für die Einrichtung (Socket-Erstellung, Initialisierung und Verbindung), sind aber flexibler und bieten möglicherweise eine bessere Leistung (höherer Durchsatz).
Möglicherweise müssen Sie einige Benchmarks für Ihre spezifische Anwendung/Umgebung ausführen, um festzustellen, was für Sie am besten funktioniert. Aus der bereitgestellten Beschreibung geht hervor, dass Unix-Domain-Sockets am besten geeignet sind.
Beejs Leitfaden für Unix IPC ist gut für den Einstieg in Linux/Unix IPC.
Ich würde mich für Unix-Domain-Sockets entscheiden:weniger Overhead als IP-Sockets (d. h. keine Kommunikation zwischen Maschinen), aber ansonsten derselbe Komfort.