在同一进程中的AppDomain之间发送大字节数组

9 .net c# windows networking remoting

我正在构建网络服务器并在请求路由到的服务器上启动大量AppDomain.将请求有效负载发送到其中一个AppDomain进行处理的最快方法是什么?

  1. 将有效负载从套接​​字读入字节数组并编组.
  2. 将网络流(继承自MarshalByRef)编组为AppDomain.
  3. 阅读有效载荷.将其解码为对象.元帅解码的对象.
  4. 使用命名管道传输字节数组.
  5. 使用环回套接字.
  6. 也许有一种方法来编组实际的套接字连接?

解码主要创建不可变对象,用于确定如何满足客户端请求,然后AppDomain创建响应并将其编组回主机AppDomain,后者通过套接字将其发回.

该方法应该比较少的CPU更喜欢内存.

WCF不是一个选项.

Gar*_*ary 1

TCP 二进制远程处理当然很快,我不知道它比原始套接字快多少,原始套接字可能是最快的,但是是皇家 PIA。

我在生产环境中使用 HTTP 二进制远程处理在两个盒子之间每秒运行 1500 - 2000 个请求。在同一台机器上,使用 TCP 或名称管道通道应该具有很高的性能,具体取决于处理数据所需的 CPU 周期。