[Unreal 5] 언리얼 엔진의 가비지 컬렉션(Garbage Collection, GC)
·
Unreal 5/Study
서론필자는 C++을 주로 사용해 개발해왔기에, 가비지 컬렉션(Garbage Collection)은 ‘약자들이나 쓰는 기능’이라며 멸시해왔다. 하지만 언리얼 엔진을 사용할 때는, 언리얼의 게임 프레임워크 클래스들을 반드시 사용해야 하며, 이 수많은 클래스들의 생명 주기를 정확히 알지 않는 이상, 직접적인 메모리 관리는 사실상 불가능하다.따라서 언리얼에서는 더 이상 참조되지 않거나 명시적으로 소멸 예약된 UObject를 주기적으로 정리하기 위해, 자체적인 가비지 컬렉션 시스템을 사용한다.Garbage Collection제목에 '언리얼 엔진의 가비지 컬렉션'이라 적었지만, 사실 언리얼만의 독특한 방식이 있는 것은 아니다. 기본적으로는 일반적인 가비지 컬렉션 원리를 따른다.다만 차이점이 있다면, UObject를..
[CS] 프로세스(Process)와 스레드(Thread)
·
Computer Science
프로세스(Process)와 스레드(Thread)프로세스(Process)정의: 운영체제에서 실행 중인 프로그램의 인스턴스를 뜻한다. 코드, 데이터, 시스템 자원(메모리 영역, 파일 디스크립터 등)을 포함하는 독립적인 실행 단위다.특징:독립된 메모리 공간을 가지므로, 서로 다른 프로세스 간 메모리 침범이 불가능해 안정성이 높다.문맥 전환(Context Switch) 시 커널이 레지스터, 메모리 맵 등 전체 상태를 저장하고 복원해야 하므로 오버헤드가 크다.프로세스 간 통신(IPC)이 필요할 때는 파이프, 소켓, 공유 메모리 등을 사용해야 하며, 구현이 비교적 복잡하다.스레드(Thread)정의: 프로세스 내에서 작업 흐름의 단위를 의미하며, 같은 프로세스 자원을 공유하는 실행 단위다.특징:메모리 공간(코드, 데..
[CS] 캐시 메모리(Cache Memory)
·
Computer Science
서론컴퓨터 시스템의 성능을 높이기 위해 다양한 방법이 연구되고 있으며, 그중 하나는 메모리 계층 구조를 효율적으로 구성하는 것이다. 특히 CPU와 메인 메모리 사이의 속도 차이를 완화하는 데 중요한 역할을 하는 구성 요소가 바로 캐시 메모리(Cache Memory)다. 캐시 메모리는 자주 사용하는 데이터를 빠르게 접근할 수 있도록 도와 전체 시스템의 처리 속도를 크게 향상시킨다. 그러나 캐시에 원하는 데이터가 없을 때 발생하는 캐시 미스(Cache Miss)는 오히려 성능 저하로 이어질 수 있다. 이 글에서는 캐시 메모리의 역할과 구조를 이해하고, 캐시 미스가 시스템 성능에 미치는 영향을 살펴보자.캐시 메모리캐시 메모리(SRAM)는 집적도가 낮아 많은 데이터를 담을 수는 없지만(수 MB 단위), 속도가 ..