분류 전체보기
-
Unity - 메모리 프로파일러보관함 2020. 8. 30. 11:58
우선 기존에 유니티 2018 버전 이전에 사용할 수 있었던 메모리 프로파일러를 공유하던 사이트가 사라짐에 따라 유니티 2018 이전 버전에서는 메모리 프로파일러를 이용할 수 없게 됐음을 알린다. 메모리 프로파일러 설치 방법 [Window] - [Package Manager]를 눌러 패키지 매니저 창을 열어준다. 패키지 매니저에서 Advanced라고 적혀있는 메뉴를 누른 뒤 [Show preview packages]를 누른다. 메모리 프로파일러가 프리뷰 버전이기 때문에 설정해주지 않으면 리스트에 보이지 않는다. 이후 리스트에서 Memory Profiler를 찾아 클릭 후 Install 버튼을 눌러 설치해 주면 된다. 메모리 프로파일러 설치 후 실행 방법 설치가 완료된 이후에는 기존 Profiler와 동일한..
-
Unity - 메모리 프로파일러(모듈)보관함 2020. 8. 5. 08:06
메모리 프로파일러 모듈의 구성 먼저 메모리 프로파일러는 CPU 프로파일러와는 달리 프레임 차트를 거의 보지 않는다. 이유는 다음과 같다. 메모리의 특성 메모리는 CPU와는 달리 특정 지점에서 피크가 생기지 않기에 전체적인 수치를 낮춰야 한다. 매니지드 언어의 특성 C#의 경우 매니지드 언어이기 때문에 사용자가 메모리 언로드 시점을 정하는 것이 아닌 GC를 Garbage Collect(이후 GC)를 통해 이뤄지므로 메모리의 변화가 GC를 기준으로 이뤄진다. 그렇기에 메모리 프로파일링에서는 메모리 프로파일러 모듈의 세부 정보창을 기준으로 작업을 진행하게 된다. 메모리 프로파일러 모듈의 세부 정보창은 Simple모드와 Detailed 모드로 나뉜다. 이를 간략하게 설명하면 다음과 같다. Simple 모드 메모..
-
Unity - CPU 프로파일러보관함 2020. 7. 22. 20:50
CPU 프로파일러의 구성 CPU 프로파일러 모듈은 다음의 항목의 성능을 확인한다. Rendering Script Physics Animation GarbageCollector VSync Global Illumination UI Others 이러한 항목은 자신이 만들고 있는 프로그램에 따라 주로 확인하게 되는 부분이 달라지겠지만 게임의 경우 일반적으로 Rendering, Animation은 항상 확인해야 한다. CPU 프로파일러에서는 특히 프레임 차트를 확인하여 프로파일이 진행되게 되는데 프레임 차트에서 CPU 사용률이 치솟는 지점을 선택하여 상세 정보를 확인하는 형태로 진행되기 때문이다. 모듈 세부 정보 창은 프레임 차트에서 특정 지점을 선택할 때 동작하며 좌 상단의 드롭박스를 통해 사용할 모드를 선택할..
-
Unity - 프로파일러란?보관함 2020. 7. 19. 20:42
유니티의 프로파일러란? 유니티의 프로파일러에 대해 알기 전에 프로파일링의 프로그램 세계에서의 의미를 확인하면 다음과 같다. 프로파일링(profiling, 프로그램 프로파일링/소프트웨어 프로파일링) 또는 성능 분석은 프로그램의 시간 복잡도 및 공간(메모리), 특정 명령어 이용, 함수 호출의 주기와 빈도 등을 측정하는 동적 프로그램 분석의 한 형태이다. 프로파일링 정보는 대개가 프로그램 최적화를 보조하기 위해 사용된다. - 위키백과[프로파일링 (컴퓨터 프로그래밍) 항목 中] 이것을 통해 유니티의 프로파일러가 유니티로 만들어진 프로그램의 성능을 분석하고 그것의 결과물을 이용해 최적화를 하기 위한 툴이라는 것을 알 수 있다. 프로파일러 실행 방법 최신 버전의 유니티에서는 상단 메뉴의 [Window] - [Ana..
-
Unity 프로파일러 스크립트 API 간략 확인일지 2020. 7. 18. 23:02
프로파일러 관련 스크립트는 UnityEngine.Profiling에 포함된 스크립트와 UnityEditor.MemoryProfiler에 포함된 스크립트로 구분할 수 있을 것 같다. 각각은 다음과 같은 클래스를 포함하고 있다. UnityEngine.Profiling에 포함된 내용은 유니티 내장 프로파일러에 타겟을 설정하고 각각의 스크립트에 샘플링을 할 구간을 지정하여 정확한 지점에 기록을 남기기 위해 사용되는 것으로 보인다. UnityEditor.MemoryProfiler에 포함된 내용은 MemoryProfiler에서 사용하는 스냅샷 클래스와 관련된 스크립트이다. 이 중 MemorySnapshot 이하에는 RequestNewSnapshot함수와 OnSnapshotReceived콜백 함수가 포함되는데 콜백 ..
-
Unity 구버전 프로파일러와 신버전 프로파일러 비교일지 2020. 7. 16. 08:46
유니티 Docs에서 어떤것을 검색하는 것 보다 구글을 통해 검색해서 유니티 Docs로 들어가는 게 훨씬 빠른 것 같다. Docs 위치에서 차이는 위와 같다. 아마 프로파일러를 "고급 개발"로 분류하기에는 너무 보편적인 기능이 되어 따로 분석이라는 탭으로 분리한 것 같다. 2019 버전에서 여러 메뉴가 추가되었는데, 확인결과 실질적으로 추가된 것은 2D 물리 프로파일러 모듈과 비디오 프로파일러 모듈 뿐이며 나머지는 기존에 있던 메뉴에서 설명을 조금더 친절하게 쓰면서 길어지거나 기존에 하나의 메뉴에서 분리된 경우이다. 분리된 것 : 프로파일러 창 -> Getting started with the Profiler window, 애플리케이션 프로파일링 길어진 것: UI 프로파일러 -> UI 및 UI 세부 정보 ..
-
메모리 프로파일러 단점, 2017버전에서의 문제점일지 2020. 7. 10. 08:28
먼저, 메모리 프로파일러는 시각적으로 어떤 메모리가 많이 사용되는지 확인할 수 있다는 점에서 굉장히 훌륭한 툴이라고 할 수 있다. 그러나 이 것도 몇 가지 문제가 존재한다. 1. Take Sample 후 트리뷰에 맞게 자료구조를 짜 맞추는데 굉장히 오랜 시간이 걸린다. 2. Take Sample을 시도할 때 자주 죽는다. 3. 프로파일의 내용을 비교하기 어렵다. 일단 이 부분은 2017에서만 확인된 문제이고 아직 신 버전은 제대로 써보지 않아 확인하지 못했다. 1번의 경우 트리뷰와 인스펙터에서 각각 사용하기 위해 정보를 분할하다 보니 느리다고 이해를 할 수 있으나 2번은 왜 죽는건지 이해가 안 되는데, 이 때 사용되는 함수는 단순히 MemoryProfiler.MemorySnapshot 함수를 사용한다. ..
-
유니티 내장 프로파일러 ... 단점?일지 2020. 7. 9. 08:46
내장 프로파일러는 현재 연결된 장치에서 돌아가는 게임(혹은 프로그램)의 현재 상태를 프로파일하기 위한 도구이다. 그렇기 때문에 이전의 상태를 보기 위해서는 저장해 뒀다가 다시 불러와 확인해야 한다. 여기에서 문제가 발생하는데, 유니티 내장 프로파일러는 단일 창만 허용하기 때문에 두개를 동시에 띄워서 비교하는 건 불가능 하다. 이것을 위해서 스크린샷을 사용하여 내가 확인하고 있는 부분을 찍은 뒤 다른 것을 열어서 확인하는 방식을 사용할 수도 있으나 이게 상당히 불편하다. 또한, 프로파일러는 위쪽에 나타나는 정보가 선 차트의 형태로 현재 메모리가 최고점 대비 얼만큼 사용되고 있는지를 알 수 있게 하지만 이것이 상당히 간략한 정보이기 때문에 더 자세한 정보를 얻기 위해서는 Detail 탭에서 스냅샷을 찍어 확..