簡體   English   中英

創建多個短期對象

[英]Creating multiple short-lived objects

如果變量@count小於10,那么向流中寫入零數組的方式更優選(通過整體性能)? 我擔心第一種方法中分配器和垃圾收集器的負載過大。 另一方面,應該大力優化.net中短期對象的創建。

void Main()
{
    using(var ms = new MemoryStream()){
        Method1(ms, 5);
        Method2(ms, 5);
    }
}

void Method1(MemoryStream ms, int count){
    ms.Write(new byte[count], 0, count);
}

static byte[] PreallocatedBuffer = new byte[1024];
void Method2(MemoryStream ms, int count){
    ms.Write(PreallocatedBuffer, 0, count);
}

在某些情況下,您可以調用垃圾回收。 本文對這些內容進行了詳細描述

https://blogs.msdn.microsoft.com/ricom/2004/11/29/when-to-call-gc-collect/

如果你有很多對象突然(而不是定期)無用(例如:你關閉一個大文件),似乎手動調用垃圾收集並不是一個壞主意

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM