본문 바로가기
반응형

메모리2

[C#] 클래스의 메모리 할당 (Stack, Heap) 아래의 내용을 이해하기 위해서는 메모리의 구조에 대해 알고있어야 한다. [개념] 메모리의 구조 메모리 구조 코드(Code) 영역 프로그램의 코드가 저장되는 영역, CPU는 코드 영역에 저장된 명령을 하나씩 처리한다. 데이터(data) 영역 전역 변수와 정적 변수가 저장되는 영역 힙(heap) 영역 사용자 bumukisbest.tistory.com 객체지향의 클래스와 객체 그리고 인스턴스 객체(object) 실생활에서 우리가 인식할 수 있는 사물, 속성과 기능을 갖는 프로그램의 단위 객체지향 프로그래밍(OOP, Object-Oriented Programming) 객체의 속성과 기능을 구체화하는 형태의 프로그래밍 모든 데이터를 객체(object)로 취급한다. 클래스(Class) 객체 지향 프로그래밍에서 유사.. 2022. 9. 20.
[개념] 구조체 패딩 (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.
반응형