일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Factory
- 문제풀이
- 게임
- 유니티
- pattern
- AI
- LeetCode
- 길 찾기
- Design
- A*
- JPS
- 2번
- 팩토리
- 머신러닝
- Algorithm
- 성능
- 디자인
- 인공지능
- 디자인패턴
- 패턴
- GetComponet
- C++
- 알고리즘
- desgin
- 디자인 패턴
- 프로그래밍
- Unity
- 개발
- 강의
- ML Agent
- Today
- Total
목록Unity/Performance (6)
Game Development
해당 글은 https://www.slideshare.net/devcatpublications/enum-boxing-enum-ndc2019 의 내용을 바탕으로 제작되었습니다. 자세한 설명은 해당 링크를 통해서 확인하시면 됩니다! 이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019 Nexon Korea 이무림 편리하고 성능좋게 Enum 사용하기 Enum의 Boxing을 어찌할꼬? www.slideshare.net Enum Type 을 Generic으로 받아 Int로 변환하는 경우 Boxing이 일어나게된다. public static int Enum32ToInt(T e) where T : Enum { return (int)(object)e; } 우리는 Boxing이..
Dictionary ContainKey vs TryGetValue Dictionary에 원하는 Key에 값이 있는지 확인할 떄 2개의 함수를 사용합니다. 해당 두 기능을 비교하여 어떤 함수가 더욱 빠른지 그리고 왜 빠른지에 대해서 알아보도록 하겠습니다 테스트 방식 각각의 함수를 천 번씩 호출하여 어느 함수가 더욱 효율적인지 비교해보도록 하겠습니다. ContainKey Dictionary dic = new Dictionary(); private void Awake() { int len = 100000000; int outValue; dic["str"] = 1; sw.Start(); for ( int i = 0; i < len; i++ ) { if (dic.ContainsKey("str") == true) ..
GetComponet 위치에 따른 비용! 해당 실험은 오브젝트 들어가 있는 Componet의 순서에 따라 GetComponet의 속도의 변화를 측정합니다. 테스트 방식 해당 테스트는 천 번 Getcompoent를 호출할 때 까지 드는 시간을 측정합니다. 총 한 오브젝트에 Componet는 10개가 들어있고 이 중에서 특정 Componet를 불러오도록 하겠습니다. 테스트의 차이는 다음과 같습니다. 1. GetComponet로 접근할 Compoent가 오브젝트 제일 위에 있습니다. 2. GetComponet로 접근할 Compoent가 오브젝트 제일 밑에 있습니다. 시작 아래의 소스코드를 통하여 각각의 상황에서 드는 시간을 비교해보도록 하겠습니다! private void Awake() { sw.Start();..
자식 클래스 참조 성능 비교 상속받는 클래스 자식을 참조하는 방법 중 GetComponet와 as를 통하여 자식을 참조 할 수 있습니다. 여기서 GetComponet 와 as의 성능을 비교해 보도록 하겠습니다. 테스트 두 방식을 통한 속도의 차이를 알아보는 테스트 입니다. 천 만번 아래의 코드를 실행 했을 경우 서로의 속도를 비교해 보도록 하겠습니다. GetComponet를 통한 방식 [SerializeField] TestParent test; int count = 10000000; private void Awake() { TestChild test2; sw.Start(); for ( int i = 0; i < count; i++ ) { test2 = test.GetComponent< TestChild ..
Update 호출 시, 소모되는 비용! 해당 실험은 2015년 말쯤에 타 블로그에서 1만번 업데이트 호출하는 테스트에 대한 글이 올라와 있습니다. 해당 실험을 현 시점 다시 진행해 볼려고 합니다. 또한 타 블로그에서 진행되었던 테스트가 신기하여 따라하고 포스팅 하는것 입니다. 이 Update함수를 코드 상에 적어두기만 해도 Update를 계속 호출하기에 많은 비용을 먹게 된다는 말입니다. 테스트 Update 호출의 비용을 알아보기 위해 테스트를 진행하는데, 1만개의 업데이트를 호출하는데 걸리는 시간을 체크해보도록 하겠습니다. 총 3가지의 테스트를 진행해보도록 하겠습니다. 1. Unity Update Message를 이용한 방식 private void Update() { count++; } 2. Corou..
반복문 성능비교 유니티를 사용하시면서 많은 반복문을 사용하게 될것 입니다. 그렇기에 가장 성능적으로 반복문 방식이 무엇인지 알아보도록 하겠습니다. 1. For 문과 Foreach 중 무엇이 더 빠를까요? 처음에 많은 사람들이 사용하기 편한 Foreach를 사용하고 있을 수 있습니다. 하지만 아래의 데이터를 보시게 된다면 충격을 받을실 수 있습니다. 초기화는 아래와 같이 진행하였습니다. int count = 100000000; private void Init() { for ( int i = 0; i < count; i++ ) { value.AddLast(Random.Range(1, 100)); } } 테스트 방식 1. 각각 1억번의 반복문을 돌리며 시작 시점에서 부터 끝나는 시점 까지의 시간을 구합니다. ..