LRU優化特效載入及快取

2021-09-06 13:14:25 字數 1072 閱讀 2239

lru是least recently used的縮寫,即最近最少使用,常用於頁面置換演算法,是為虛擬頁式儲存管理服務的。

簡單說就是快取最近最常使用的服務或物件。

先來個很爛的草圖(但能說明問題)

這個是整體的特效載入優化的流程圖。主要就是對池子的操作,快取起最近最常使用的特效。

using system;

using system.collections.generic;

using unityengine;

public class lruwhere t : unityengine.object

}public lis***atas

}public lru(uint limitnum = 30)

/// /// 獲取乙個資料,注意,函式內不會新增資料,只能通過如果返回為null則adddata增加

///

///

///

public t getdata(string data)

if (data.compareto(ldata.name) == 0)

}return rdata;

}/// /// 新增乙個資料

///

///

public void addandsortdata(t data)

}else

sortdata();

}/// /// 重新排序或去除元素,使用物件得時候呼叫

///

private void sortdata()

for (int i = mdatas.count - 1; i >= 0; i--)

mdatas.removeat(i);}}

}}

在用在特效的物件池身上,這樣就可以更大概率的保證命中率了。特別是用在moba,rpg這些遊戲。因為我們主角可能換的概率不大,那麼快取起來不銷毀這些特效的話,那麼下次進來就不需要再載入一遍。命中率比普通載入方式高很多。

android 快取管理及LRU演算法

1 為什麼要用快取 快取是訪問資料的臨時地,因為取原始資料代價太大了,加了快取,可以取得快些。快取可以認為是原始資料的子集,它是從原始資料裡複製出來的,並且為了能被取回,被加上了標誌。在android開發中,經常要訪問網路資料比如大量網路,如果每次需要同一張都去網路獲取,這代價顯然太大了。可以考慮設...

android 快取管理及LRU演算法

1 為什麼要用快取 快取是訪問資料的臨時地,因為取原始資料代價太大了,加了快取,可以取得快些。快取可以認為是原始資料的子集,它是從原始資料裡複製出來的,並且為了能被取回,被加上了標誌。在android開發中,經常要訪問網路資料比如大量網路,如果每次需要同一張都去網路獲取,這代價顯然太大了。可以考慮設...

android 快取管理及LRU演算法

1 為什麼要用快取 快取是訪問資料的臨時地,因為取原始資料代價太大了,加了快取,可以取得快些。快取可以認為是原始資料的子集,它是從原始資料裡複製出來的,並且為了能被取回,被加上了標誌。在android開發中,經常要訪問網路資料比如大量網路,如果每次需要同一張都去網路獲取,這代價顯然太大了。可以考慮設...