Java имеет внутрипроцессный транспорт (InProcessChannelBuilder и InProcessServerBuilder), способный избежать сериализации. Если вы используете directExecutor () как на клиенте, так и на сервере, то он становится ближе к «прямому вызову функции».
C ++ также имеет внутрипроцессный транспорт (InProcessChannel () на сервере), но он будет сериализовать и десериализовать сообщения. Поскольку большинство языков на основе C используют изменяемые буферы протокола, даже если бы это могло избежать сериализации, ему все равно нужно было бы сделать какую-то копию; Буферы протокола Java являются неизменными.