I would say performance is the only need in this situation.
Another advantage of memory-mapped files would surely be that it allows to access a very large chunk of data.
Do you mean message-based IPC, It should introduce some overhead, isn't it?
Yes, a solution based on messaging comes to mind (of course, only if it fits your needs). Some kind of MOM (message-oriented middleware) is optimized for high volumes of messages (up to millions or billions per second) and popular products like ActiveMQ allow for a lot of optimizations regarding performance, reliability, availability, guaranteed delivery etc. Additionally these tools are often capable of running in a distributed mode in a cluster of message brokers. This enables high availability and allows you to scale horizontally, i.e. to simply add more nodes to speed up performance when necessary. Of course messaging isn't a perfect fit for all situations. For example you won't use messages to share gigabytes of data in a single message. Another thing to consider is that messaging is inherently asynchronous and your application has to be designed accordingly which may or may not be an option but at least requires a different way of thinking about design.
A nice thing about ActiveMQ is that you can easily use it in embedded mode inside your application as long as you don't really need a separate message broker or a cluster of brokers.
Regarding overhead I don't see real disadvantages for a messaging-based solution. As I said these tools are highly optimized for speed and throughput and can be further tuned per configuration. If you'd implement your own kind of IPC with memory-mapped files you'd still have to read and write from or to it and manage how to access the file concurrently from different processes. This is surely no easy task and will bring some overhead, too. That doesn't mean that it is not possible to outperform existing and proved solutions with a custom solution but it may not be that easy to do and
you should ask yourself if you think you can achieve this and if it's worth the trouble.
That said, I want to add that messaging of course is not the only solution to integrate different applications/processes. You should choose well depending on your needs and requirements!
Marco