Yod*_*ber 9 remoting ipc named-pipes .net-2.0
我正在评估驻留在同一台机器上的几个.NET 2.0进程的各种进程间通信方法.当然,.Net Remoting是候选者,理论上最快的配置应该是IpcChannel(命名管道)+ BinaryFormatter.
我的基准测试确实表明,远程处理IpcChannel可能比TcpChannel更快,但IpcChannel显示吞吐量随着消息变大(大约30 MB)而急剧下降:
Message Size 30 MB 3 MB 300 KB 3 KB Remoting / TCP 120 MB/s 115.4 MB/s 109.5 MB/s 13.7 MB/s Remoting / IPC 55 MB/s 223.3 MB/s 218.5 MB/s 20.3 MB/s
有没有人知道为什么,或任何想法如何优化任一渠道的性能?我确实需要传递30 MB的BLOB,并且希望避免必须处理共享内存/内存映射文件.另外,我不能把这些写入磁盘(慢得多).
以下方法用于基准测试(重复调用,测量的总时间,按总时间划分的总有效负载大小).
private byte[] _bytes = null;
public byte[] HelloWorld(long size)
{
if (_bytes == null || _bytes.Length != size)
_bytes = new byte[size];
return _bytes;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |