UDN
Search public documentation:
HotSpotReportGenerationKR
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
핫 스팟 리포트 생성
개요
원본 MemLeakCheck 데이터 생성하기
- UnrealConsole 을 불러온 뒤 테스트에 사용될 게임 인스턴스로 연결합니다.
- DebugConsole 실행파일을 통해 캡처하려는 빌드를 실행시킵니다.
- 캡처하려는 SP 레벨을 불러옵니다.
- 레벨에서 다음 명령을 내립니다:
DoMemLeakchecking 30
- =stat levels= 을 켜면 P-레벨이 언제 변화하는지를 추적할 수 있습니다.
- 전체 P-레벨 및 다음 P-레벨 이행시까지 진행합니다.
- 이행한 P-레벨의 캡처를 두 번 한 다음, 메인 메뉴 및/또는 리부팅으로 빠져나옵니다.
- 다른 레벨 캡처 시작 전에는 반드시 리부팅하십시오.
- 프로파일링 중인 플랫폼에 따라 다음 폴더에 memleakcheck 파일이 생성됩니다:
- PC/UDK:
[install]\[GameName]\Profiling\MEMLEAKS
- iOS (documents 디렉토리를 PC로 백업한 이후. documents 디렉토리 백업에 관한 정보는 Deployment Tools 페이지 참고):
[install]\[GameName]\iOS_Backups\[DeviceName]\Profiling\MemLeaks
- PC/UDK:
- 각 memleakfile 은 시작된 레벨 이름을 딴 폴더명 속에 파싱됩니다.
예를 들어 level-a 에서 캡처를 시작한 후 level-b 와 level-c 로 진행했다면, 그 전체에 대한 캡처는 level-a 폴더에 들어갈 것입니다.
- 이 memleakcheck 파일/폴더를 쉽게 접근할 수 있는 위치로 복사합니다.
데이터를 뽑아낼 CSV 생성하기
- 다음 폴더에서 memleakcheckdiffer.exe 를 실행시킵니다:
..\Binaries\
- MemLeakCheckDiffer 에서,
File > Open
선택 후 폴더와 하위폴더의 Memleak 파일을 전부 엽니다. - Browse, memleakcheck 파일을 넣어 둔 폴더로 이동해 갑니다.
- 폴더가 MemLeakCheckDiffer 를 채울 때까지 기다립니다.
- 모든 폴더가 MemLeakCheckDiffer 창을 채우고 나면,
Generate Overall Report
를 선택합니다. - 각 레벨에 대한 CSV 가 생성되며, GlobalSummary CSV 역시도 생성됩니다.
- CSV는 MemLeakCheck 파일을 넣어 둔 폴더 안에 위치합니다.
전체적인 추세 데이터 분석하기
- 엑셀로 GlobalSummary 스프레드시트를 엽니다.
- 콘텐츠 데이터를 좀 더 쉽게 시각화해 보기 위해, 다음 이외의 열은 전부 숨깁니다:
- LowestTFP (가장 낮은 TFP)
- AnimSequenceClasses (애님 시퀸스 클래스)
- SkeletalMesh_Classes (스켈레탈 메시 클래스)
- SoundNodeWave (사운드 노드 웨이브)
- StaticMesh_Classes (스태틱 메시 클래스)
- 버킷 이름으로 시작해서 열의 마지막 값으로 끝나는 이와 같은 열 다섯을 선택합니다.
- 선택하고나서
Insert > Line Graph
를 선택합니다. - 각 콘텐츠 버킷의 상태는 물론 레벨상의 전체적인 메모리 추세를 개괄적으로 확인할 수 있습니다.
개별 레벨 CSV 분석하기
레벨 디자이너용 '인간-친화적' 핫 스팟 리포트 준비하기
이 테스트 도중 가장 낮은 메모리는 20 MB 였으며, 다음 서브레벨이 로드되었을 때였습니다:
첫째 급락
다음 bugit 위치를 통해 이 급락 발생 직전의 레벨 영역으로 이동할 수 있습니다:
이 급락 도중 애님 시퀸스 클래스가 15 MB, 스켈레탈 메시 클래스가 5 MB, 사운드 노드 웨이브가 5 MB, 스태틱 메시 클래스가 2 MB 씩 각각 늘었습니다.
이 급락이 발생한 첫 지점인 세 번째와 여섯 번째 캡처 사이에 새로이 스트림 인 된 서브레벨은 다음과 같습니다:
이 급락 도중 애님 시퀸스 클래스는 10 MB, 스켈레탈 메시 클래스는 2.5 MB, 사운드 노드 웨이브는 5 MB, 스태틱 메시 클래스는 1 MB 올랐습니다.
두 번째 급락 도중, 즉 8 번째와 12 번째 캡처 사이에 스트림 인 된 서브레벨은 다음과 같습니다:
- SP_Example_W
- SP_Example_02_boss
- SP_Example_02_S
- SP_Example_03
- SP_Example_04

BugItGo -1858.2000 -2162.7903 1572.0010 64073 -16686 0=
- SP_Example _Cine
BugItGo 904.3768 261.3029 1761.1804 -4788 -20256 72
- SP_Example_02_boss
- SP_Example_02_S
- SP_Example_03
콜아웃 되는 항목
피할 항목
후속 핫 스팟 리포트 준비하기
장기간 실행
domemleakchecking 30
명령을 내리고 가급적 멀리 가 보는 것입니다. 저희는 가급적 길게 늘이기 위해 reducepoolsize
옵션으로 실행합니다.
이 데이터를 사용하면 개별 레벨 실행과 연속적인 실행간의 차이점을 비교하여 기본적인 메모리 델타를 구할 수 있습니다. 이 델타를 살펴보면 개별 레벨 속에 세우기 시작할 때 얼마나 많은 부하가 필요할 지를 알아볼 수 있으며, 메모리 누수 발생 위치를 파악하는 데도 도움이 될 것입니다.