반응형
반응형

Zero allocation

 

Zero allocation이란?

"Zero allocation"은 프로그래밍에서 메모리 할당과 관련된 개념입니다. 이는 메모리 할당 없이 작업을 수행하거나 최소한의 메모리 할당만을 사용하여 높은 성능을 달성하기 위한 기술이나 접근 방식을 가리킵니다. 주로 고성능 및 실시간 시스템에서 중요한 역할을 합니다.

일반적으로 프로그램에서 메모리를 할당하거나 해제하는 작업은 비용이 많이 드는 작업 중 하나입니다. 메모리 할당은 시스템 호출이나 내부적인 자료구조 조작 등을 통해 이루어지며, 이로 인해 프로그램 실행 속도가 느려질 수 있습니다. 또한 메모리 할당을 빈번하게 하면 메모리 단편화가 발생할 수 있어 메모리 사용 효율도 저하될 수 있습니다.

 


원칙

사전 할당 (Preallocation): 프로그램 시작 시 미리 필요한 메모리를 할당하고, 이후에는 필요한 데이터를 재사용하거나 재할당하지 않는다. 이렇게 하면 메모리 할당 및 해제에 드는 오버헤드를 줄일 수 있습니다.
재활용 (Reusing): 이전에 할당한 메모리를 재활용하여 새로운 데이터를 저장하는 방식을 채택합니다. 즉, 메모리를 계속해서 재할당하지 않고 이미 할당된 메모리를 사용합니다.
스택 사용 (Stack Allocation): 가능한 경우 스택 메모리를 활용하여 메모리를 할당합니다. 스택 메모리 할당은 힙 메모리 할당보다 훨씬 빠르며, 스택 프레임 내에서 지역 변수 등을 할당하는 방식입니다.
불변성 (Immutability): 데이터를 불변 객체로 다루는 것을 선호합니다. 이로 인해 데이터의 복사본을 만들거나 변경할 필요가 없어지며, 메모리 할당을 줄일 수 있습니다.
객체 풀 (Object Pooling): 미리 할당한 객체 풀에서 객체를 가져와 사용하고 반환하는 방식으로 메모리 할당을 줄일 수 있습니다.
"Zero allocation"은 주로 고성능 게임 엔진, 실시간 그래픽 처리, 실시간 통신 시스템 등에서 사용되며, 높은 성능과 메모리 효율성을 유지하는 데 도움을 줍니다.

반응형

+ Recent posts