בכל אופן זה תלוי במה שאתה רוצה לעשות. ככלל, עם Shared memory תקבל ביצועים טובים יותר. אבל זה מעט יותר מסובך לביצוע ומוגבל לכך שכל התהליכים יופעלו על אותו המחשב. אם אתה צריך להעביר מבני נתונים גדולים, תשתמש ב shared memory. אם כל מה שאתה צריך זה להעביר הודעות בין הישומים וכאלה, תשתמש בסוקטים, ההבדל בביצועים יהיה זניח...
יש לך כמעט 0 אוברהד שהרי מערכת ההפעלה עושה את המיפוי בין כתובות זיכרון וירטואלי לבין כתובות זיכרון פיזי... אז אין אפילו העתקה של הנתונים! בנוסף, תגגל boost.interprocess... אולי יעזור לך.