У меня есть довольно большая функция поиска пути A *, которая часто вызывается и должна быть помещена в другой поток, потому что в противном случае моя игра будет зависать. Я пришел из Java-фона и недавно прочитал обсуждение скорости работы HashMap (по сути, эквивалент NSDictionary) и различных реализаций, которые вы можете использовать. Мне любопытно, насколько быстрым является NSDictionary и нашел ли кто-либо его жизнеспособным вариантом для работы со множеством немедленного и временного выделения объектов, или же он слишком медленный для этого.
В настоящее время я использую NSMutableArray для открытых и закрытых списков в алгоритме A * - я бы заменил закрытый список на NSMutableDictionary из-за O (1) setObject: forKey и removeObject: forKey, а также создал NSMutableDictionary, который "отражает" открытый список. Данные пути хранятся в большом NSMutableArray - я бы оставил это как есть, потому что доступ к индексу достаточно быстрый (конечно).
Итак, мой вопрос ... будет ли это заметным улучшением скорости, или я должен свернуть свои собственные списки и / или карты? Я просто не уверен, что NSDictionary делает , и я хотел бы знать.