문제

나는 자주 부름을 받고 다른 스레드에 넣어야하는 꽤 큰 패스 파인딩 함수를 가지고 있습니다. 그렇지 않으면 내 게임을 더 많이 쓰러 뜨릴 수 있기 때문입니다. 나는 Java 배경에서 왔으며 최근에 Hashmap의 속도 (본질적으로 nsdictionary와 동일)와 사용할 수있는 다양한 구현에 대한 토론을 읽었습니다. NSDictionary가 얼마나 빠르고 누군가가 즉각적이고 임시적인 객체 할당을 다루기위한 실행 가능한 옵션인지 또는 너무 느린 지 궁금합니다.

현재 A* 알고리즘의 개방형 및 폐쇄 목록에 NSMutableARRAY를 사용하고 있습니다. O (1) SetObject : Forkey 및 Remobject : Forkey로 인해 NSMutabledictionary로 폐쇄 목록을 교체하고 NSMutabledictionary를 생성합니다. " 거울 "열린 목록. 경로 데이터는 큰 nsmutablearray에 저장됩니다. 색인 액세스가 충분히 빠르기 때문에 이것을 그대로 두겠습니다.

그래서 내 질문은 ... 이것은 눈에 띄는 속도 개선일까요, 아니면 내 자신의 목록 및/또는지도를 굴려야합니까? 나는 어떤 nsdictionary가 확실하지 않습니다 하다 그리고 알고 싶습니다.

도움이 되었습니까?

해결책

최적화 방법이 궁금하다면 A*, 먼저 반복 심화와 같은 플랫폼 독립적 확장을 사용하고 있는지 물어 봅니다. A* (일명 IDA*), 어떤 종류의 휴리스틱을 사용하고 있으며, 캐싱을 사용하는 경우 (전치 테이블, 패턴 데이터베이스). 당신이 묻는 질문은 현재 금속에 너무 가깝습니다. 왜냐하면 당신은 당신을 막을 수없는 시스템의 일부를 최적화하기 때문입니다.

살펴보십시오 이 코스는 슬라이드입니다 (특히 강의 10 그리고 강의 11)

다른 팁

절대적으로 차이를 만듭니다 - 최근에 NSarray (목록에있는 것인가? 찾기 위해 반복 ...)를 사용하는 순진한 구현을 변경했습니다. 너무 많은 일을하지 않으면 서 수용 할 수없는 것부터 수용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top