假设我们有一个简单的互联网套接字,并且它将发送10兆字节(因为我想忽略内存问题)的随机数据。 应该使用什么性能差异或最佳实践方法来接收数据?最终的输出数据应该用byte []表示。是的,我知道将任意数量的数据写入内存是不好的,如果我正在下载一个大文件,我不会这样做。但为了论证的缘故,让我们忽略它,并假设它只是少量的数据。我也意识到这里的瓶颈可能不是内存管理,而是套接字接收。我只想知道接收数据的最有效方法是什么。从套接字接收数据的C#性能方法?
一些狡猾的方式能想到的是:
有一个列表和缓冲区,后缓冲区已满,将其添加到列表中,并在年底list.ToArray()来获得byte []
将缓冲区写入内存流,完成后构造stream.Length的byte []并将其全部读入以获取byte []输出。
有没有更高效/更好的方法来做到这一点?
是的,这似乎是最简单但不错的答案,谢谢! – Daniel 2010-04-06 23:23:21