隨著發布的 MemoryStoreHashMap 數據結構的發布,Roblox 移除了個人數據結構的所有現有限制,並將它們替換為單一、全球的「每個分區」限制。準確限制會根據內部值和自動分割過程如何分配您的數據來變動,但通常在限制之前允許使用率大幅提高,特別是對於哈希地圖。這個新限制可以在所有數據結構中彈性使用記憶存儲。
分區
記憶體儲存 API 在 分區 上儲存數據,這是僅僅是儲存的分裂。每當您將項目寫入記憶體儲商店 商家時,該項目將存放在正確的一個分區上。分區由記憶儲存 API 完全管理;您不需要自行管理它們。
分割割り当て
分區儲存會根據項目儲存在的數據結構而異。對於排序的地圖和隊列,每個資料結構都會被分配單一分區。
例如,考慮一個排序的地圖叫做 PlayerScores 和一個隊列叫做 PlayerLine 等待玩遊戲的玩家:

與排序的地圖和隊列不同,哈希地圖獲得了多個分區,數據將自動分配到這些分區。如果您要添加名為 Prizes 的哈希地圖,分區可能會看起來像這樣:

注意如何在所有分區上存在哈希地圖,每個分區包含一些子集的項目。
限制
擁有每個分區限制可以提高所有數據結構的吞吐量。它也喜歡哈希地圖,因為它們分布在所有分區上。
例如,考慮每個分區的限制為每分鐘 150,000 個請求(RPM):
- 在最好的情況下,排序的地圖和隊列的限制為 150,000 RPM,因為每個都位於單一分區上。
- 要對地圖進行散列的請求會分布到物品鑰匙上,這些鑰匙本身分布到分區上,因此散列地圖在壓縮之前可以有更高的有效限制,比其他數據結構多數倍。

因此,如果您不需要排序或「先進先出」功能,哈希地圖通常是記憶儲存資料結構的最佳選擇。了解更多信息,請參閱最佳實踐。