본문 바로가기

C++2

[C++] Garbage Collection & Reference Counting 프로그래밍 언어엔 메모리를 프로그래머가 직접 관리해야하는 unmanaged 언어와 언어단에서 관리해주는 Managed 언어가 있다. 대표적인 예로 C/C++가 Unmanaged 언어이며 C#, JAVA가 Managed 언어이다 대부분의 Managed 언어에서는 메모리 관리를 하기 위해 다음중 하나의 기법을 사용한다. Garbage collection Reference counting 🔖Garbage Collection 힙 메모리에 주소가 할당하여 사용중에 메모리 주소를 새로 할당하여 가리키는 주소값이 변경되거나 형변환이 되면서 주소를 잃어버리게 되고, 다시 찾을 수 없게 되는 메모리가 생겨버리게 되는데 이렇게 발생하는 가비지 메모리를 가비지 컬렉터(Garbage collector)가 추적하고 해제하게 된.. 2022. 12. 7.
[C++] Optimized C++ / 동적 변수 사용 줄이기 ✳️ 동적 변수 줄이기 (Optimized C++) 🔹클래스 인스턴스를 정적으로 만들기 클래스 인스턴스는 동적으로 만들 수 있으나, 컨테이너의 일부가 아닌 대부분의 클래스 인스턴스는 정적(new를 사용하지 않고)으로 만들 수 있으며, 일반적으로 그렇게 해야한다. MyClass* myInstance = new MyClass("hello", 123); 위와 같이 포인터를 사용하여 클래스 인스턴스를 동적으로 만들거나, 스마트 포인터로 생성해 동적으로 만든 클래스 인스턴스를 명시적으로 삭제할 필요가 없도록 만들수 있다. 하지만 두 방법 모두 비용 낭비가 심하므로 반드시 동적으로 만들 필요가 없는 경우에는 다음과 같이 클래스를 정적으로 생성하는 것이 좋다. MyClass MyInstance("hello", 123.. 2022. 11. 15.