ECS 개요는 알겠는데, 대체 얼마나 빨라지길래 스크립팅 방식을 바꿔가면서까지 제공을 하는 걸까요?
그래서 한 번 유니티에서 제공해주는 샘플앱을 이용해 간단하게 벤치마크 테스트 해보았습니다.

 

* 아래 결과는 제 컴퓨터에서 18년 12월 28일 기준으로 수행된 결과입니다.

  * 사양 - i5-6600 / GTX 970 / Ram 15GB

* 실행 프로젝트는 유니티 ECS 샘플 프로젝트의 TwoStickShooter 입니다.

* job system과 burst compiler를 고려하지 않고, 단순히 오브젝트 리젠 갯수를 늘린 결과입니다.

 

* 오브젝트 무한리젠 ( 매 업데이트(0.02)마다 오브젝트 10개씩 생성)

* Classic

Profiler
Game Play Scene

 - 약 30FPS 아래로 내려갈 때의 프로파일링 결과입니다.

 - 총 오브젝트 갯수가 6800개를 넘어가자 어마어마하게 끊깁니다.

 

* hybrid ECS

- 약 30FPS 아래로 내려갈 때의 결과입니다.

- 총 오브젝트 갯수가 21000개 정도 이상되니 끊기네요

- 특이한 점은 classic은 끊기다가 다시 조금 회복되다 또 끊기는 반면에 Hybrid는 더더더 느려집니다.

 

*Pure ECS

- 30 FPS 이하로 떨어지질 않아요 하단 이미지가 실행중인 이미지인데 저 상태에서도 굉장히 부드럽습니다.

- 다만 특이한 점은 총 오브젝트 갯수가 균일하게 약 2000개 밖에 안 찍힙니다. 화면상으로만 봐도 몇 만개는 되보이는데 말이죠. ( 이 부분에 대해서는 좀 더 ECS 시스템에 대한 공부가 필요할 듯하네요)

 

 

 

 

번외로 Pure ECS가 30 FPS 이하로 떨어지는 구간이 대체 언제쯤일지 테스트를 해보았는데, 매 업데이트(0.02초)마다 적 오브젝트를 50개씩 만드니 아래와 같이 떨어지긴 하더군요 (참고로 적오브젝트는 계속 총알 오브젝트를 날립니다)

 

Result

- 거의 성능 차이가 classic을 1이라 했을 때, hybrid가 3, pure가 5~10 정도로 차이가 나는 듯 보이는 것 같습니다.

 

* 다음 포스팅부터는 hybrid ECS를 사용하는 방법 및 사용하면서 발생했던 오류 위주로 포스팅 시작하도록 하겠습니다.

 

 

* 유니티 샘플 프로젝트 경로를 같이 올리려했는데 반년 사이에 많은 변화가 있었는지 git 저장소에 TwoStickShooter를 비롯해 제가 가진 예전 샘플들이 없어졌더군요 ; (너무 바뀌어서 같은 프로젝트인지도 확실치 않지만 최근 샘플을 공유드립니다.)

 - git https://github.com/Unity-Technologies/EntityComponentSystemSamples

* 글을 쓰는 날(19.5.19)을 기준으로는 ECS 벤치마크 데이터가 빈번하게 검색되어 나오는 것 같네요. 더 궁금하시면 영문으로 찾아보시면 만족할만한 자료가 나올 듯 합니다.

 

* 개인이 공부하며 하는 포스팅이기에 잘못된 부분이 있을 수 있습니다.

 혹시 잘못되거나 문제시 되는 부분이 있으면 지적 부탁드립니다.

Posted by 검은거북

블로그 이미지
프로그래밍 공부 요약 및 공부하며 발생한 궁금증과 해결과정을 포스팅합니다.
검은거북

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함