我有一個用C#編寫的TCP服務器,它處理髮送給它的POST數據。目前它工作正常,除非大量的數據(即大於1GB)被髮送到它然後它耗盡內存(我將它全部存儲在內存中作爲一個字節數組(中間的List DTO))。現在,對於大文件,我將流式傳輸到磁盤,然後傳遞文件名以便從磁盤進行流式傳輸。TCP服務器和MemoryStreams/ByteArrays
目前我所有的例程都是爲了預期字節數組而寫的,事後看來,這是有點短視的。如果我只是將bytearray轉換爲內存流,它會使內存使用量翻倍嗎?我認爲重寫我的代碼以在memorystream上工作將允許我在從磁盤讀取流時重新使用它。
對不起,愚蠢的問題,我不知道什麼時候c#獲取數據的副本或何時需要引用。
OP詢問關於傳遞一個字節[],據我所知,所有數組都是引用類型。它可能會保存值類型(在這個例子中是字節),但是數組本身是一個引用類型。 – trickdev 2011-11-21 11:43:32