頻繁に呼び出されるかなり大きな A* パスファインディング関数があり、別のスレッドに配置する必要があります。そうしないと、ゲームが途切れてしまうからです。私は Java のバックグラウンドを持っており、最近、HashMap (本質的には NSDictionary と同等) の速度と、使用できるさまざまな実装についての議論を読みました。私は NSDictionary がどれだけ速いか、また多くの即時および一時的なオブジェクトの割り当てを処理するための実行可能なオプションであると誰かが知っているかどうか、またはそれには遅すぎるかどうかに興味があります。
現在、私は A* アルゴリズムのオープン リストとクローズ リストに NSMutableArray を使用しています。O(1) setObject:forKey と removeObject:forKey により、クローズ リストを NSMutableDictionary に置き換え、「公開リストをミラーリングします。パス データは大きな NSMutableArray に格納されます。インデックス アクセスは (もちろん) 十分に高速であるため、これをそのままにしておきます。
だから私の質問は...これは顕著な速度の改善ですか、それとも独自のリストやマップを展開する必要がありますか? NSDictionary が何をするかわからないので、知りたいです。