We are trying to create an application where parts of it may be distributed, but not necessarily are. For that we'd like to use an existing framework for remote calls. To not implement everything twice, we'd like to use the same thing for calls on the same machine, in the same process.
Does anyone know the performance / latency penalty that we'll get when using such a framework instead of calling a vtable directly? Are there comparisons available?
The system should be portable on Windows & Linux
Regards Tobias
What is common with most communication frameworks that I'm aware of is that they will always serialize, send and deserialize, which will always be a performance hit over passing references to other threads and accessing data directly (with or without mutex). This shouldn't always be dramatic when responsibilities are assigned wisely to minimize communication.
Remark that with these sort of architectural choices, performance is only one of the aspects to consider. Others are: security, stability, flexibility, deployment, maintainability, licenses, etc...