본문 바로가기
[C++강좌 리팩토링] 메모리 최적화, Unions 이용 [C++강좌 리팩토링] 메모리 최적화, Unions 이용 Unions 또한 리팩토링과 메모리 낭비를 막기 위해 사용할 수 있다. 데이터 멤버 중 (최소한) 하나라도 활성화되면 같은 메모리 공간에 모든 데이터 멤버가 위치하기 때문이다. union은 데이터 멤버를 모두 저장할 수 있으며, 생성자와 소멸자를 포함할 수 있다. 하지만 가상 멤버 함수를 가질 순 없다.union은 다른 클래스의 기저 클래스로써 사용될 수 없으며 다른 클래스로부터 상속할 수도 없다.union은 비자명한 특수 멤버 함수들을 가지는 객체들을 저장할 수 없다. C++에서는 익명의(anonymous) unions을 지원한다. anonymous union은 이름이 없는 객체이다. 예를 들면, 명명된 union과는 다르게 익명의 union은 .. 2017. 10. 2.
[C++강좌] 메모리 최적화, 리펙토링 (Bit Fields 프로그래밍 성능 관리) [C++강좌] 메모리 최적화, 리펙토링 (Bit Fields 프로그래밍 성능 관리) 메모리 사용 최적화(Optimizing Memory Usage) C++ 강좌, 메모리 최적화 장점 - 더 빠른 실행속도 - 시스템 자원들의 효율적 사용 - 메모리 최소 사용 코드 최적화 위의 모든 것을 향상하려 노력한다. 그리고 C++에서 선언 재할당 기법은 불필요한 객체 생성과 해제를 제거하여 프로그램 크기를 줄이고 실행시간 속도를 향상한다. 그러나 다른 최적화 기법들은 하나의 방향(더 빠른 코드 또는 더 작은 메모리 점유)으로 심하게 치우친다. 때론, 최적화 목표들은 상호 배타적이기도 하다. 즉, 메모리 점유를 작게 만드는 것은 더 느린 코드를 초래하며 반면에 더 빠른 코드는 더 큰 메모리 점유로 이어진다. 이 포스팅.. 2017. 9. 30.