與 MemoryStoreHashMap 數據結構的發布,Roblox 已移除所有個別數據結構的現有限制,並將它們全部替換為單一,全球 "per-Partition" 限制。準確限制會根據內部值和自動分配程序的分配方式而浮動,但通常允許在使用彈性更高的方式來分配記錄。這項新限制
分區
MemoryStores API 在 部分 上存儲資料,這是儲存的子分。當您寫入任何物品到記憶體商店 商家存時,該物品會儲存在正確的一個分區。分區由記憶體儲存 API 完全管理;您不需要自己管理它們。
分區指定
分區存儲是根據項目所存儲的資料結構不同的。對於排序的地圖和排隊,每個資料結構都有一個分區。
舉例來說,考慮一個名為 PlayerScores 的排序地圖和一個名為 PlayerLine 的排隊玩家,他們正在等待玩遊戲:
與排序樹狀清單和排隊不同,哈希樹狀清單的資料會自動分配在這些部分。如果您添加了名為 Prizes 的哈希樹狀清單,部分可能會看起來像這樣:
注意要素圖在所有分區上存在,每個分區有一些子集項目。
限制
設定每個分區限制可以提高所有數據結構的輸出。它也會優先於所有分區中的哈希地圖,因為它們在所有分區中分布。
舉例來說,請考慮每分鐘 150,000 請求的平均分配限制 (RPM):
- 在最好的情況下,排序的地圖和排隊列表是由 150,000 RPM 限制,因為它們每個都位於單一的 partition。
- 要在地圖上散列的要求會在項目鑰匙上擴散,因此項目鑰匙會在多個分區中擴散,因此項目鑰匙可以在限制速度之前,很多次其他數據結構的速度限制的前提下,有更高的效果限制。
因此,如果您沒有需要排序或「第一個在,第一個出」功能,則 hash 樹狀結構通常是最佳選擇。 For more information, see 最佳練習 .