我正在构建一个消息路由器,并希望它尽可能快。 我想留在C#4.0中,并希望尽可能快地使用套接字。 我可能不需要将所有数据放入托管内存。 我处理的字节数组,并使用该方法(除非是更好的选择找到)正在使数据到管理的内存:http://www.codeproject.com/KB/cs/ReadingStructuresEmit.aspx在不安全的c#中使用Ws2_32.dll比使用.net套接字更快吗?
问题:
1)是否存在被不安全使用套接字性能提升?多少?
2)是使用这样的一个不安全的方法时(与所有的结构不安全以及)有一个的PInvoke或数据编排击中
public unsafe partial class Native
{
[DllImport("Ws2_32.dll")]
public static extern int connect(SOCKET s, sockaddr_in* addr, int addrsize);
}
3 )对于#2,数据处理是否发生在不安全的情况下以及何时不安全的方法返回时没有数据返回(也许什么都不是封送到托管)?
我还没有尝试过对它进行基准测试。我想知道在实施之前改进会有多大。 – Joe 2010-11-29 15:55:26
我的猜测是改善不会引人注目。 – cdhowie 2010-11-29 15:57:13