.NET中的分散/收集异步套接字I / O
时间:2020-03-06 14:32:23 来源:igfitidea点击:
我正在尝试在.NET中使用Stream.BeginWrite异步I / O API来处理具有许多短消息的高吞吐量情况。这样,分散/收集API将大大减少上下文切换的次数(和CPU使用率)。此API是否完全使用LPBUFFERS Win32 API?是否有用于Scatter / Gather I / O的替代API?
解决方案
如果我们可以从BCL进入分散/收集api,我会感到惊讶(我们知道它是针对33t w1n32 haxx0rz的吗?),但是总有P / Invoke(我发现它非常容易使用)。
如果我们想深入研究框架的精髓,可以通过以下几种方法来实现:
1)反光板
2)MS最近开放了源代码进行调试,如果启用了Debugging / Options / General下的选项,则可以使用VS2008进入源代码。
3)Koders.com似乎也托管框架源:
http://www.koders.com/csharp/fidCE09E83BE706D0BD370658C3785E82D3A13FC2CE.aspx?s=flush()#L109
.NET中没有办法进行套接字分散/聚集I / O。根据MSFT博客文章,.NET 4.5中可能有类似的API(无论是什么)。