我們有一個將C#poco對象加載到內存中的系統。 (從磁盤上的數據源反序列化)。它們被進一步緩存在ObjectCache(MemoryCache.Default)中,並通過Repository類公開。鏈是這樣的:這是內存管理方面的最佳鏈嗎?
private Dictionary<string, T> itemsDictionary;
private Dictionary<string, T> ItemsDictionary
{
get
{
return itemsDictionary ?? (itemsDictionary = RepositoryLoader.Load());
}
}
private List<T> itemsList;
private List<T> ItemsList
{
get
{
return itemsList ?? (itemsList = ItemsDictionary.Values.ToList());
}
}
public List<T> All { get { return ItemsList; } }
RepositoryLoader.Load() - 這個緩存在內存中緩存的字典項目...
我的問題是 - 你可以看到它也可以通過去2個緩存屬性 - 它是否會在內存消耗上創建一個複製? :)有沒有一種方法來優化這個鏈?
'Values'屬性已經是'ICollection'。您可以將其作爲屬性公開。是否有你想要它作爲'List '的理由?如果是這樣,什麼?也許有更好的方法去解決這個問題。 –