unity
-
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 함수를 사용한다. ..
-
Unity 학습 튜토리얼 사이트, 참고 사이트 :: Unity Learn, Unity Documentation보관함 2020. 1. 18. 16:30
유니티를 학습할 때 여러 자료를 확인하게 되는데 최근 2019버전의 기능을 확인하던 중 유니티 튜토리얼 사이트가 개편되어 상당히 편해진 것을 발견했습니다. 그래서 이번 포스팅에서는 유니티를 처음 학습하시는 분들이 참고하실 수 있는 사이트인 유니티 튜토리얼과 유니티 도큐먼트에 대해 간략하 소개하도록 하겠습니다. Unity Learn) 유니티에서 학습을 위해 제공하는 사이트로 유니티 엔진 자체의 사용법에서부터 특정 기능을 사용하는 방법 그리고 심지어 특정 프로젝트를 처음부터 끝까지 만드는 방법에 대한 가이드를 제공합니다. - 사이트 접근 방법 유니티 메인 사이트에 접속합니다. 만약 유니티가 없다면 검색하셔서 광고 아닌 사이트로 들어가시면 됩니다. 상단의 학습 탭에 마우스를 올린 뒤 나오는 메뉴에서 학습자 탭..
-
Unity에서 .NET 4.x 사용안 했던 이유 및 새로운 기능일지 2019. 11. 26. 18:47
많은 회사에서 .NET 4.x를 사용하지 않는데 물어보기 뭐해서 검색해보니 MSDN에서 해당 사유를 알 수 있는 글을 발견할 수 있었다. 사용안 한 이유) 위 정보를 읽어보면 유니티 2017버전 이전에는 NET 4.x 버전을 아예 지원하지 않았고 2017버전에 들어와서 실험적으로 도입하기 시작했다는 것을 알 수 있다. 그렇기에 회사들이 .NET4.x를 사용하지 않았던 것은 기존에 2017버전보다 낮은 버전을 사용했기 때문이기도하고 2017을 썼다 하더라도 실험적인 기능을 제품에 적용하기는 어려웠던 것으로 보인다. 유용한 기능) .NET4.x로 넘어오면서 편리한 기능들이 생겼다. 1. auto 이니셜라이저 // .NET 3.5 public int Health { get; set; } // Health ha..
-
Unity 씬 전환 최적화 테스트일지 2019. 11. 9. 16:01
테스트 진행) 0. 조건 설정 각 씬은 50,000 개의 회전하는 박스 오브젝트로 구성됨. 총 세개의 씬으로 구성되며 1번씬부터 3번씬 그리고 다시 1번씬으로 5번의 씬 전환을 진행. 성능 프로파일러를 통해 성능(메모리 및 속도) 변화 파악을 진행. 1. 기본 씬 전환 아무런 작업 없이 씬 5번 로드 2. 씬 전환 사이에 빈 씬 로드 씬 로딩 전 빈 씬으로 전환한 뒤 실제 로딩할 씬으로 전환 3. 기본 씬 전환 후 gc.collect 여러번 호출 씬 로딩을 5번 한 뒤 6번째 로딩할 때 GC.Collect()를 7번 호출 결론) 기본 씬 전환 시 약간 메모리 사용량이 올라간 것이 확인되었다. 씬 로딩이 완료된 뒤 GC가 동작하는 것이 맞는 듯 하다. GC.Collect()를 7번 호출하면 내부적으로 즉시..