UDN
Search public documentation:
ProfilingBasicsKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 홈 > 퍼포먼스, 프로파일링과 최적화 > 기본 프로파일링과 최적화 기법
기본 프로파일링과 최적화 기법
개요
STAT 명령
프로파일링 환경 준비하기
- 우선, 게임 실행중에 STAT UNIT 을 띄워뒀는지 항시 확인합니다.
- 퍼포먼스 결과를 망치는 로그 스팸을 껐는지 또는 디버그 코드를 껐는지 확인하십시오.
- 버벅임에 영향을 끼치므로 가비지 콜렉션 검증을 끄십시오.
- 빠른 프레임에서도 병목 현상을 알아낼 수 있도록 VSync 를 끄십시오.
STAT UNIT
프레임 시간 어디에 병목 현상이 발생하는지 알아보려면 STAT UNIT 명령을 사용하십시오. STAT UNIT 은 프레임 시간, 게임 스레드 시간, 렌더 스레드 (Draw) 시간, (가능하면) GPU 시간 등을 표시하는 화면상의 HUD 를 토글합니다. 퍼포먼스 문제를 추적해 내려가기 위해서 매우 중요한 첫 단계로, 거의 항상 이 기능을 켜 놔야 합니다. 또한 STAT FPS 명령을 사용하여 화면에 프레임율과 프레임 시간을 표시할 수 있습니다.가비지 콜렉션 검증 끄기
퍼포먼스 작업을 하면서는 항시 GC Verification 을 꺼 둬야 하는데, 안그러면 Release 빌드에서는 최소 30 초 정도마다 엄청난 버벅임을 볼 수 있을 것입니다. 다음 방법 중 하나를 쓰면 됩니다:- 명령줄 인수 -NoVerifyGC 를 붙입니다.
VSync 끄기
최적의 결과를 위해선 VSync (프레임을 표현하기 전 수직 retrace 를 대기하는 기능)을 끄는 것이 좋습니다. 안그러면 프레임 시간은 게임의 리프레시율에 덧대어져, 정확한 그림을 얻기가 더욱 힘들어 집니다. VSync 를 끄려면:- -NoVSync 명령줄 옵션을 게임에 전달합니다.
- 아니면 Unreal Frontend 의 Game 탭에서 "No VSync" 체크박스를 켭니다.
STAT SLOW 사용하기
STAT SLOW 명령을 사용하면 퍼포먼스 스파이크를 찾는 데 도움이 됩니다. 프레임이 지정된 기간 (디폴트로 10 ms) 이상 실행되는 사이클 통계를 보고하여 버벅임 범위를 줄여 보는 데 좋습니다. 느리게 실행되는 부분의 통계는 잠깐동안 HUD 상에 표시되어, 화면상의 게임 행위와 스파이크의 상관관계를 쉽게 파악할 수 있도록 합니다. 사용하려면 콘솔에 STAT SLOW 에다 초 단위로 (즉 0.01 은 10 ms) 한계치는 얼마나 할지, 스파이크가 발생하면 통계를 얼마나 표시할지 지정합니다. 예:STAT SLOW 0.01 10
지난 10초간 사이클 통계가 10ms 초과인 것을 표시합니다.
팁과 꼼수
걍 꺼버려!
자주 괜찮긴 한데 꽤나 무거운 기능을 접하게 됩니다. 너무 많이 사용하지만 않으면, 복잡한 씬에서 너무 느려지지만 않으면 괜찮기야 할 것입니다. 몇 시간 공들여 최적화하여 20~40% 향상시켰대도 씬이 충분히 빠르지 않을 수도 있습니다. 이럴 때 좋은 방법은 걍 그 기능을 끄는 것입니다! 대학살 장면이라거나 좀 원거리라 눈치채기 힘들 경우에 괜찮을 전략적 선택입니다. 게다가 "걍 꺼버려"는 프로파일링 하기에도 좋은 기술입니다. 가끔은 이걸 최적화 해? 말어? 싶을 때가 있습니다. 그냥 꺼버리고 이렇게 말해버리면 딱입니다: "프레임시간 측면에서 자유를 선택한 거야!" 용례:- 플레이어와의 거리가 먼 적들의 경우 보통 바닥에 피 데칼(총 맞았을 때의 출혈 효과들)을 뿌릴 필요가 없습니다.
- 플레이어가 다가가 볼 수 없는 (절벽같은 데 있는) 적한테도 출혈 효과나 무기 드랍 효과를 줄 필요가 없을것입니다. 렙디가 잘 알것입니다.
- 복잡한 스켈레탈콘트롤을 최적화하는 대신, 오너가 보이지 않을 때는 업데이트 안해버리면 그만입니다.
- 천(cloth) 시뮬도 씬에 없을 때는 그냥 안해버리면! ^_^
벽보기
대부분 보이지 않아 필요 없는데도 코드가 업데이트되는 경우가 있습니다. 레벨로 들어가 벽을 바라보고 서서 보통의 프로파일링 작업을 해 보겠습니다. 어떤 오브젝트가 필요치도 않은 상황에서 설레발치며 업데이트되고 있는지 확인해 볼 수 있습니다. 물론 몇몇은 안보여도 계속 업데이트가 필요한 게 있지만, 대부분은 지속적으로 업데이트하지 않아도 되는 것들입니다.A형 N개 스폰
게임 내에서 어떤 종류의 적에게 공격받을 때 게임이 느려지는 경우가 자주 있습니다. 가끔은 그 적 자체가 느린겁니다! 문제는 엔진 나머지 것들이 걸리적거려서 뭐가 느린건지 쉽게 알아볼 수가 없다는 겁니다. 그럴 때 좋은 방법은 테스트 레벨에다가 그 적을 N개 스폰해 놓고 프로파일링해 보는 겁니다. 화두가 뭔지 쉽게 알아볼 수 있을 겁니다! 사용하기 쉬운 기술입니다:- 테스트 레벨에 문제 오브젝트를 N개 놓아 봅니다.
- 프로파일!