본문 바로가기
반응형

개념6

[개념] 구조체 패딩 (Struct Padding) 구조체 패딩은 성능 향상을 위해 CPU가 접근하기 쉬운 위치 메모리에 구조체 필드를 배치하는 것이다. CPU는 메모리를 읽어올 때 한 번에 [32bit OS*]는 4byte, [64bit OS]는 8byte를 읽어온다. 아래와 같은 구조체가 선언되어있다. struct box { char c; long long ll; }; 이때 long long 타입의 ll 멤버 변수를 읽고자 하면 32bit OS는 한 번에 4byte씩 메모리를 읽기 때문에 메모리에 3번 접근이 필요하고 64bit OS는 한번에 8byte씩 메모리를 읽기 때문에 메모리에 2번 접근이 필요하다. 하지만 아래와 같이 구조체에 패딩 값을 넣어준다면 패딩 비트의 크기만큼 메모리를 낭비하게 되지만 CPU가 ll을 읽어올 때 메모리에 접근하는 수가.. 2022. 4. 15.
[개념] 빅 엔디안 & 리틀 엔디안 (Big-Endian & Little-Endian) 비트(bit)란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위이다. 바이트(byte)는 한 문자를 표한할 수 있는 최소 단위로 8비트로 구성되어있다. (1Byte = 1Bit) 컴퓨터는 데이터를 바이트 단위로 저장하고 연속되는 바이트를 저장하는 순서가 바로 바이트 배열 순서(Byte Order)이다. 데이터는 낮은 주소에서 높은 주소 차례로 저장되지만 이 데이터가 저장되는 순서에 따라 빅 엔디안과 리틀 엔디안이 나뉜다. 빅 엔디안 Big-Endian 상위 비트부터 바이트 단위로 저장하는 방식으로 평소 사람이 숫자를 사용하는 방식과 같은 방식이다. 큰 자리 수부터 저장하기 때문에 숫자 비교에 유리하고 저장된 순서 그래도 읽을 수 있어 이해가 용이하다. 리틀 엔디안 Little-Endian 하.. 2022. 3. 28.
반응형