假設我們有一個簡單的互聯網套接字,並且它將發送10兆字節(因爲我想忽略內存問題)的隨機數據。 應該使用什麼性能差異或最佳實踐方法來接收數據?最終的輸出數據應該用byte []表示。是的,我知道將任意數量的數據寫入內存是不好的,如果我正在下載一個大文件,我不會這樣做。但爲了論證的緣故,讓我們忽略它,並假設它只是少量的數據。我也意識到這裏的瓶頸可能不是內存管理,而是套接字接收。我只想知道接收數據的最有效方法是什麼。從套接字接收數據的C#性能方法?
一些狡猾的方式能想到的是:
有一個列表和緩衝區,後緩衝區已滿,將其添加到列表中,並在年底list.ToArray()來獲得byte []
將緩衝區寫入內存流,完成後構造stream.Length的byte []並將其全部讀入以獲取byte []輸出。
有沒有更高效/更好的方法來做到這一點?
是的,這似乎是最簡單但不錯的答案,謝謝! – Daniel 2010-04-06 23:23:21