분류 전체보기
-
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 탭에서 스냅샷을 찍어 확..
-
유니티 내장 프로파일러 _ 메모리위주로...일지 2020. 7. 3. 07:11
프로파일러는 유니티에서 개발하고 있는 혹은 개발 한 프로그램에 대한 최적화를 위해 사용되는 툴로써 CPU, GPU, 렌더링, 오디오, 메모리 등이 효율적으로 사용되고 있는 지를 분석하고 파악할 수 있는 툴이다. 정확한 결과를 위해서는 어떤 작업 이전의 프로파일된 내용과 작업 이후의 프로파일된 내용을 비교하여 해당 작업의 영향을 파악해야 한다. 유니티 에디터에서 실행되고 있는 프로그램에 대한 즉각적인 프로파일링이 가능하며 iOS나 안드로이드 앱의 경우에도 기기를 연결하여 프로파일링을 진행할 수 있다. 유니티 에디터에서 프로파일링을 진행하는 경우 유니티 엔진 자체에 포함되어있는 여러 에셋이 메모리에 함께 잡히게 되므로 iOS나 안드로이드 앱인 경우에는 기기 혹은 애뮬레이터와 연결하여 프로파일링 하는 것이 정..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시보기 - 상태보관함 2020. 3. 23. 19:40
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 여섯 번째 패턴인 상태 패턴을 살펴보고 상태 패턴을 이용해 간단한 플랫포머 게임을 만들어 보는 것을 목표로 한다. 상태 패턴이란?) [GoF디자인 패턴]에서는 상태 패턴을 다음과 같이 소개했다. 객체의 내부 상태에 따라 스스로 행동을 변경할 수 있게 허가하는 패턴으로, 이렇게 하면 객체는 마치 자신의 클래스를 바꾸는 것처럼 보입니다. 내가 이해한 내용으로 설명하면 상태패턴은 FSM에 OOP를 적용한 것이라고 할 수 있겠다. 즉, ..