보관함
-
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..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시보기 - 상태보관함 2020. 3. 23. 19:40
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 여섯 번째 패턴인 상태 패턴을 살펴보고 상태 패턴을 이용해 간단한 플랫포머 게임을 만들어 보는 것을 목표로 한다. 상태 패턴이란?) [GoF디자인 패턴]에서는 상태 패턴을 다음과 같이 소개했다. 객체의 내부 상태에 따라 스스로 행동을 변경할 수 있게 허가하는 패턴으로, 이렇게 하면 객체는 마치 자신의 클래스를 바꾸는 것처럼 보입니다. 내가 이해한 내용으로 설명하면 상태패턴은 FSM에 OOP를 적용한 것이라고 할 수 있겠다. 즉, ..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 싱글턴보관함 2020. 3. 1. 14:51
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 다섯 번째 패턴인 싱글턴을 살펴보고 저자가 주장하는 싱글턴 사용을 피해야 하는 이유에 대해서 자세히 살펴보는 것을 목표로 한다. 싱글턴 패턴이란?) [GoF디자인 패턴]에서는 싱글턴 패턴을 다음과 같이 소개했다. 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공합니다. 코드로 살펴보면 다음과 같이 인스턴스 생성이 하나만 되도록 제한하고 전역 변수로 접근하도록 만드는 것이다. class TestC..
-
JUNGOL 실력키우기 여러가지 - 색종이(초) | 색종이(중)보관함 2020. 2. 16. 09:28
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 여러가지의 색종이 시리즈를 풀어보겠습니다. 1438 : 색종이(초) 이 문제는 가장 단순한 것이 정답일 수 있다는 것을 잘 보여주는 듯한 문제인 듯 합니다. 단순하게 100 x 100 크기의 bool형 배열을 만들고 최초로 체크될 때 넓이에 1을 추가하는 방식을 사용하면 입력된 위치를 따로 저장할 필요 없이 쉽게 넓이를 알아낼 수 있습니다. #include using namespace std; bool area[101][101]; int main(void) { int n; cin >> n; int x, y; int totalArea{ 0 }; for ..
-
JUNGOL 실력키우기 문자열 - 암호풀기(Message Decowding)보관함 2020. 2. 10. 10:42
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 문자열의 암호풀기 문제를 풀어보겠습니다. 1880 : 암호풀기(Message Decowding) 이 문제는 입력된 복호화 키를 값으로 하는 맵을 만들어 대치시켜주면 되는 간단한 문제입니다. 그런데 c++의 getline이 안먹어요. 심지어 이번에는 cin의 clear와 ignore 메소드를 넣어도 성공하지 못합니다. #include #include #include using namespace std; int main(void) { string str; cin >> str; map keyMap; char c{ 'a' }; for (int i{ 0 }; c