Average performance for local IPCs

We are currently evaluating various IPC methods (or rather RPC) for our current project, which is at a very early stage. Performance is very important, so we take some measurements to help our choice. Our processes that will interact will be located on one computer .

A separate acceptable option is to prevent IPC altogether (by encapsulating the functions of one of the processes in the .NET DLL and using the other), but this is an option that we would very much like to avoid, since these two pieces of software are developed by two separate companies, and we consider it very important maintain good "fences" that make good neighbors.

Our tests consisted of sending messages (containing blobs of various sizes) across process boundaries using each method. These are the numbers we get (the performance range correlates with the message size range):

  • Web Service (SOAP over HTTP):
    • 25-30 MB / s when binary data is encoded as Base64 (default)
    • 70-100 MB / s when using MTOM
  • .NET Remoting (BinaryFormatter over TCP): 100-115 MB / s
  • Management group - DLL method call + mem copy: 800-1000 MB / s

( ) IPC, TCP loopback, . ? IPC- 10 , ? , - TCP, ?

+3
3
  • , 30 , 3 . .NET Remoting BinaryFormatter (IpcChannel), .

  • ( , - 30 ), , . , .

0

.

- , , , . Linux , , , .

+3

+ - ( , , ). . , , .

0

Source: https://habr.com/ru/post/1776236/


All Articles