簡單紀錄。
【Dictionary取用 】
- 用TryGetValue 取代 ContainsKey + key索引值的二次取用
- 安全:失敗時回傳預設值,不需手動處理例外
- 快速:查詢一次,速度翻倍
- 文件說明: https://www.itread01.com/content/1545782417.html 條目3
- 不要直接使用Enum跟Struct做Tkey
- 解法1:實作對應的GetHashCode和Equals,讓TKey的處理不觸發Boxing
- 解法2:(Struct)實作IEquatable Interface
- 文件說明:https://blog.csdn.net/qq_36576410/article/details/87909947
【取用的基本原則】
- 当一个对象的数量保持不变时和需要频繁的查找对象时不要使用List(列表)。
- 如果是动态的对象,且不需要频繁查找对象时,使用List(列表)是最佳的选择。
- 需要快速查找,并且对象的改变很小时,使用Dictionary(字典)是最佳的选择。
- 当一个对象的数量保持不变时,使用Array(数组)是最佳的选择(自己添加的
【其他】
- for, foreach 與 GetEnumerator() 的選用時機
- for :用於遍歷 List
- GetEnumerator :用於遍歷 Dictionary
- 文件說明:https://blog.csdn.net/lyh916/article/details/52194998 效能圖(重要)
- 字串使用的優化
- 情境:專案內比較難實現,成本較高
- 文件說明:https://zhuanlan.zhihu.com/p/28471848
【官方優化(5.x)】
【内存管理】
- 簡中:https://www.jianshu.com/p/d4bc591105ae
- 英文:https://www.gamasutra.com/blogs/WendelinReich/20131109/203841/C_Memory_Management_for_Unity_Developers_part_1_of_3.php
感謝觀看,若你能夠留下一些建議與感想
都會成為我寫文章的動力,感謝!!