Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 문제풀이
- parameter
- dfs
- 프로그래밍
- C#
- 백준
- DP
- c++
- 파이썬
- 시작해요 언리얼 2022
- python
- Programming
- String
- W3Schools
- Tutorial
- dynamic
- 재귀
- Unreal Engine 5
- Class
- UE5
- guide
- 오류
- Algorithm
- loop
- github
- Material
- Basic
- w3school
- Unity
- 기초
Archives
- Today
- Total
행복한 개구리
OceanCleaner 21.08.20. 개발일지 - 최적화 프로파일링 본문
프로젝트의 발열을 잡기위해 며칠간 최적화를 공부하며 메모리를 확보할 수 있는 부분들을 찾고있다.
일단 CPU또는 GPU의 문제인지 알아야 하기때문에(보통은 GPU에서 발열이 나는 경우가 10배가량 많다고 한다) 프로파일링을 돌려보았다.
우선 그래프를 보았을 때 가장 두드러지게 많이 차지하는 부분이 렌더링이다.
렌더링이 거의 반정도를 차지하는 것을 확인하였고 그 다음은 CPU와 GPU의 속도를 동기화하여 테어링을 방지해주는 Vsync, 그 다음으로는 스크립트가 차지했다.
결과를 보니 생각보다 스크립트의 비중이 컸으며 생각보다 렌더링의 문제라고 보기에는 그 비중이 상당이 작았다. 그리고 Vsync도 보아하니 CPU에서 수행하는 것 같은데 CPU에서 렌더링 명령을 할당해주는 메모리와 (Vsync + 스크립트)의 메모리 비중이 거의 비슷하게 나오는 것으로 보아 비단 UI, 오브젝트, 메쉬들의 문제가 아닌듯했다.
따라서 계획은
스크립트에서는
- 시작했지만 작동하지 않을때도 정지되지 않은 코루틴을 모두 정지시켜 줄 것이다.
- 반복문을 확인하여 낭비되는 구간이 있는지 확인하고 수정할 것이다.
- Update나 FixedUpdate를 확인하여 낭비되는 프레임이 있는지 확인하고 수정할 것이다.
Vsync는
- Vsync를 끌 수 있는지 알아보고 만약 가능하다면 Vsync가 없을 때 테어링현상이 발생하는지 확인할 것이다.
- 테어링이 발생한다면 팀원들의 의견을 묻고 Vsync를 제거/지속 하는 방향으로 진행할 것이다.
렌더링에서는
- 어차피 폴리곤을 줄인다고 배치가 줄진 않는다. 따라서 불필요한 UI를 줄일 계획이다.
- 사용하지 않는 오브젝트를 비활성한다면 메모리에 부담이 줄어드는지 확인한 후 그러하다면 사용하지않는 오브젝트를 비활성시켜두고 사용할 때만 활성 시켜줄 예정이다.
그리고 가장 많이 나온 Other, 즉 기타에서는
- 해당 Loop이 뭘 의미하는지 찾아보고 고칠 수 있는지를 알아봐야겠다.
우선 여기까지 계획을 잡고 실행하며 발열이 줄어드는지 기기테스트를 해봐야겠다.
그리고 동시에 최적화에 대한 공부도 더 진행하며 해봐야겠다.
'Unity > Project : Ocean Cleaner' 카테고리의 다른 글
OceanCleaner 21.08.19. 개발일지 - 어셋찾기 (0) | 2021.08.20 |
---|---|
Ocean Cleaner 21.08.18. 개발일지 - 최적화 (0) | 2021.08.18 |
Ocean Cleaner 21.08.17. 개발일지 - 최적화 (0) | 2021.08.17 |
OceanCleaner 21.08.16. 개발일지 - 미리보기 이미지 키우기 (0) | 2021.08.17 |
OceanCleaner 21.08.08~21.08.09 개발일지 (0) | 2021.08.10 |