일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Custom Package
- RSA
- jumping ball
- Job 시스템
- Dynamic Font
- job
- C#
- 가이드
- 단말기 해상도
- 다이나믹 폰트
- ui
- unity
- 샘플
- 이미지 폰트
- AES
- Tween
- adfit
- Unity Editor
- Framework
- 프레임워크
- 텍스트 메시 프로
- DotsTween
- 암호화
- TextMeshPro
- 2D Camera
- 커스텀 패키지
- 최적화
- base64
- Dots
- sha
- Today
- Total
EveryDay.DevUp
[Unity] DOTS ( Data Oriented Technology Stack ) 본문
● DOTS란?
▶ Unity를 통해 멀티스레딩과 퍼포먼스 향상이 가능한 차세대 유니티 기반 기술이다.
▶ ECS, Job System, Burst Compiler 의 각 고유한 기능들을 사용하여 DOD ( Data-Oriented Design )을 구현 하였다.
※ Data-Oriented-Design
: 프로그래밍을 시작하게 되면 가장 먼저 배우는 개념이 OOP ( Object-Oriented Programing )일 것이다. OOP는 여러대의 자동차가 존재한다고 했을 때 각 자동차를 객체로 분리하여 자동차의 특성을 정의하고 그 특성을 상속과 추상화 등으로 처리하여 여러대의 자동차를 나타낸다. OOP는 객체에만 중점을 두기 때문에 메모리에 어떻게 배치 된다거나, 그 안에 어떤 데이터가 있는지에는 관심이 없다.
: DOD (Data-Oriented-Design) 는 OOP의 객체를 데이터로 변화시켜서 데이터의 타입이 어떤지, 메모리에 어떻게 배치할 것인지, 데이터를 어떻게 사용할지를 중심에 놓는 방식이다. 위의 차를 예를 들면 속도, 크기, 브랜드, 차의 속성을 각각의 배열로 만들어서 관리하고 운전이라는 함수는 별도의 시스템에서 데이터를 가져다가 처리하는 방식이 된다.
DOD의 장점
① 병렬화 처리
: OOP는 각각의 객체가 서로 간에 참조 및 상호작용을 하는 부분이 많기 때문에 병렬적으로 처리하기가 어렵다. 이에 비해 DOD는 데이터를 각기 컨트롤 할 수 있기 때문에 동기화의 문제나 참조 및 상호작용의 문제가 적다.
② 캐시 활용성이 높아짐
: OOP는 생성된 객체가 메모리에 분리되어 배치될 가능성이 높은 반면에, DOD는 메모리에 데이터를 연속적으로 가지고 있기 때문에 캐시 미스가 일어날 상황이 적다.
: CPU 성능이 메모리의 성능보다 더 가파르게 상승하기 때문에 메모리의 성능을 최적화 하는 것이 전체적인 퍼포먼스 향상에 도움을 준다.
③ 모듈화
: OOP는 하나의 객체에 여러개의 데이터와 함수들이 존재할 가능성이 높은 반면에 DOD 데이터와 그 데이터를 처리하는 함수의 단위가 작고 상호 의존성이 낮기 때문에 모듈화를 하기가 쉽다.
DOD의 단점
: OOP로 개발하던 방식의 구조와 생각을 DOD로 바꾸기 위해서는 생각과 구조의 전환이 필요하고 이에 따라 학습에 대한 시간이 필요해진다.
Unity DOTS의 구성 요소인 ECS, Job, Burst는 하단의 링크를 통해 자세히 알아 볼 수 있다.
ECS : https://everyday-devup.tistory.com/68
Job : https://everyday-devup.tistory.com/69
Burst : https://everyday-devup.tistory.com/70
'Unity' 카테고리의 다른 글
[Unity] DOTS - 프로세스, 스레드, C# Job 시스템 (0) | 2020.06.03 |
---|---|
[Unity] DOTS - ECS ( Entity, Component, System ) (0) | 2020.06.02 |
[Unity] Gamma ( 감마 보정, 감마 색 공간 ) vs Linear ( 선형 색 공간 ) (0) | 2020.05.26 |
[Unity] Editor Ui 스케일링 (0) | 2020.05.25 |
[Unity] URP ( Universal Render Pipeline ) (0) | 2020.05.24 |