Notify 최적화 테스트
- 2D 게임의 애니메이션에서 특정 프레임에 실행될 노티파이를 실행시키는 방법은 두가지
-1. 애니메이션의 프레임 수와 일치하는 Notify 배열을 만들어서
n번 애니메이션 프레임이 재생될 때 Notify 배열의 n번 인덱스에 들어가서 등록된 Notify가 있는지 확인하고 실행
-- 공간을 좀 더 잡아먹는 대신 좀더 효율적이라고 예상
-2. Notify 구조체에 함수 포인터와 실행될 Frame을 등록해 놓고 생성될 때마다 배열에 pushback 해놓은 뒤
한 프레임 프레임 당 Notify가 모여있는 배열을 모조리 순회 돌면서 저장된 Frame 번호와 현재 재생되고 있는 Frame 번호가 일치하는지 확인하고 실행
-- 공간을 덜 잡아먹는 대신 좀 더 비효율적이라고 예상
- 둘 중 어떤게 빠른지 실험해보기 위해서 코드를 짜 보았다.
-- 둘다 1000개의 프레임에 500개의 노티파이가 등록되어 있다
--- 애니메이션을 재생하면서 노티파이를 동작시킨다고 가정하고, 한 프레임이 넘어가기 전에 다시 반복문에 들어왔을 때 재생되지 않게 하기 위해서 bool타입의 call 변수를 바꿔주어 다시 동작하지 않도록 해주어야 한다.
--- 또한 애니메이션 재생이 완료되면 위의 call 변수를 다시 모두 false로 바꿔주어야 한다.(그래야 다음 애니메이션 재생 때 노티파이가 다시 동작할 수 있으므로)
-- 1번은 250개 프레임에 노티파이가 2개씩 동적 할당되어 있다(총 500개)
-- 2번은 500개만큼 노티파이를 동적 할당하여 배열에 pushback 하였다.
<실험 코드>