我有一個很大的A *尋路函數,經常被調用,必須放在另一個線程中,否則它會讓我的遊戲結束。我來自Java背景,最近閱讀了關於HashMap(基本相當於NSDictionary)速度的討論以及您可以使用的不同實現。我很好奇NSDictionary有多快,是否有人發現它是處理大量即時和臨時對象分配的可行選項,或者它是否太慢。優化A *尋路iPhone - NSDictionary會訣竅嗎?
目前我在A *算法中使用NSMutableArray作爲開放和封閉列表 - 我將用O(1)setObject:forKey和removeObject:forKey替換封閉列表,並使用NSMutableDictionary 「鏡像」打開列表的NSMutableDictionary。路徑數據存儲在一個大的NSMutableArray中 - 我會保持原樣,因爲索引訪問速度夠快(當然)。
所以我的問題是...這是一個明顯的速度提高或我應該推出自己的名單和/或地圖?我只是不確定什麼NSDictionary 確實,我想知道。
這是一篇比較NSDictionary,NSSet和NSArray的好文章:http://cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html – pxl 2009-10-21 19:00:46