박싱과 언박싱 (Boxing & Unboxing) 박싱과 언박싱은 메모리 영역을 공부하면 알게되는 기법으로 값 형식의 데이터를 참조 형식으로 변환하는 과정을 박싱, 그 반대를 언박싱이라 한다. 박싱 (Boxing) 이해하기 쉽게 말하면, C#은 모든 객체의 최상단에 object가 있다. 즉, 모든 자료형은 object로 변환될 수 있다. 이러한 상황에서 int형 변수를 object로 바꾸어 보면 박싱이 되는 것이다. 박싱 (Boxing) int value = 42; // 값 타입 변수를 선언하고 초기화 object boxedValue = value; // 값 타입을 참조 타입으로 박싱하여 저장 주의할 점은 단순히 스택에서 힙으로 값을 복사하는 것이 박싱이 아니다. 클래스 객체를 new로 만들어 힙영역에 ..
메모리 풀링 (Memory pooling) 풀링이라는 단어 자체를 외우는 편이 좋다. 풀링은 특정 목적의 객체를 미리 특정 크기 혹은 갯수만큼 미리 생성/할당하고 필요에 따라 사용할 수 있도록 제공하고 사용이 끝나면 회수하여 다시 사용할 수 있도록 대비하는 것이다. (사용과 회수 과정에서는 필요에 따라 초기화 단계가 추가될 수 있다.) 대표적인 예로는 게임을 제작에 최적화를 위해 자주 사용되는 오브젝트 풀링 기법이나 게임 서버에서 자주 사용되는 IOCP가 있다. 목적 메모리 할당 및 해제는 많은 비용이 발생한다. 이는 메모리 단편화(fragmentation) 현상을 초래하여 성능저하에 큰 원인이 되기에 이러한 과정을 최소화할 수 있는 풀링 기법들이 다양한 부분에서 만들어졌다. 메모리풀링 기법들은 미리 만..
처리기 (Processor) 처리기는 컴퓨터 시스템에서 주요한 계산 및 제어 기능을 담당하는 하드웨어 구성 요소이다. 주로 중앙처리장치(Central Processing Unit, CPU)라고 불린다. GPU(Graphics Processing Unit)나 DSP(Digital Signal Processor)와 같은 처리 장치들도 프로세서라고 명칭할 수 있다. 처리기들은 때로는 운영체제에 의해 관리되기도 한다. 운영체제는 이 처리기들이 실행할 다음 작업에 대한 정보를 보내고 상태를 감시한다. 프로세서 역할 명칭 설명 명령어 실행 메모리에서 읽어온 명령어를 해독하고 실행하여 프로그램의 동작 제어 데이터 처리 연산 수행 및 데이터 처리 제어 프로그램 실행 흐름 제어, 분기와 반복 등 제어 흐름 수행 인터럽트..
- Total
- Today
- Yesterday
- const
- 포인터
- thread
- 레지스터
- 할당
- 인터럽트
- 스레드
- 메모리
- c++
- 수학
- 함수
- CPU
- New
- 프로세스
- 크기
- 컴파일
- 운영체제
- 명령어
- 게임수학
- 구조
- malloc
- 초기화
- 클래스
- static_cast
- 입출력
- 상속
- 알고리즘
- dynamic_cast
- 백준
- 멀티스레드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |