본문 바로가기

TechLog

Objective-c에서 메시지 송신 방식에 따른 실행 속도 비교

Objective C에서 메서드를 호출할 때 직접 selector를 사용하거나, performSelector:를 사용하거나 IMP를 사용해 함수 포인터를 호출하는 방식 등을 사용할 수 있는데, 이러한 호출 방식에 따라서 수행 성능에 차이가 있을 수 있다.

 

  시간 %
메시지 송신 0.310 172.2%
performSelector: 0.590 327.8%
함수호출(by IMP) 0.180 100%

함수의 호출 시점 때문에 간혹 performSelector:를 사용할 경우가 있는데, 이것조차도 실행 속도에 차이가 있을 줄이야 …

 

- 출처 : 詳解 Objective-C 2.0 [大型本], 荻原 剛志