Ich werde Shodanex zustimmen, es sieht so aus, als würden Sie vorzeitig versuchen, etwas zu optimieren, das noch nicht problematisch ist. Wenn Sie nicht wissen, dass Steckdosen ein Engpass sein werden, würde ich sie einfach verwenden.
Viele Leute, die auf Named Pipes schwören, finden ein wenig Ersparnis (abhängig davon, wie gut alles andere geschrieben ist), erhalten jedoch Code, der mehr Zeit für das Blockieren einer IPC-Antwort benötigt als für nützliche Arbeit. Sicher, nicht blockierende Schemata helfen dabei, aber diese können schwierig sein. Ich kann sagen, dass die Beschleunigung Jahre damit verbracht hat, alten Code in die Moderne zu bringen. In den meisten Fällen, die ich gesehen habe, ist die Beschleunigung fast gleich Null.
Wenn Sie wirklich glauben, dass Sockets Sie verlangsamen werden, gehen Sie mit gemeinsamem Speicher aus dem Gate und achten Sie dabei sorgfältig darauf, wie Sie Sperren verwenden. Auch hier kann es vorkommen, dass Sie eine kleine Beschleunigung feststellen. Beachten Sie jedoch, dass Sie einen Teil davon verschwenden, indem Sie auf Sperren für gegenseitigen Ausschluss warten. Ich werde keine Reise in die Futex-Hölle befürworten ( na ja , 2015 nicht mehr ganz die Hölle, abhängig von Ihrer Erfahrung).
Pfund für Pfund sind Sockets (fast) immer der beste Weg, um IPC für den Benutzerbereich unter einem monolithischen Kernel zu erhalten. Und (normalerweise) am einfachsten zu debuggen und zu warten.
pipe(2)
(ähmmkfifo(3)
?) ist vielleicht der Gewinner, aber Sie werden es nicht wissen, bis Sie es versuchen.