【发布时间】:2017-05-26 22:54:06
【问题描述】:
假设我们有一个简单的互联网套接字,它将发送 10 兆字节(因为我想忽略内存问题)的随机数据。 是否有任何性能差异或应该用于接收数据的最佳实践方法?最终的输出数据应该用一个 byte[] 来表示。是的,我知道将任意数量的数据写入内存是不好的,如果我正在下载一个大文件,我就不会这样做。但是为了争论,让我们忽略它并假设它是少量的数据。我也意识到这里的瓶颈可能不是内存管理,而是套接字接收。我只是想知道接收数据的最有效方法是什么。
能想到的几个狡猾的方法是:
有一个List和一个buffer,buffer满后,加入list中,在list.ToArray()末尾获取byte[]
将缓冲区写入内存流,完成后构造流的字节[].Length并将其全部读入其中以获得字节[]输出。
有没有更有效/更好的方法来做到这一点?
【问题讨论】:
标签: c# performance sockets