비동기 적으로 데이터 메시지를 전송하여 통신하는 두 개의 스레드가 있다고 가정하십시오. 각 스레드에는 일종의 메시지 큐가 있습니다.
내 질문은 매우 낮은 수준입니다. 메모리를 관리하는 가장 효율적인 방법은 무엇입니까? 몇 가지 솔루션을 생각할 수 있습니다.
- 발신자는을 통해 개체를 만듭니다
new
. 수신자 전화delete
. - 메모리 풀링 (메모리를 보낸 사람에게 다시 전송하기 위해)
- 가비지 콜렉션 (예 : Boehm GC)
- (객체가 충분히 작은 경우) 힙 할당을 완전히 피하기 위해 값으로 복사
1) 가장 확실한 솔루션이므로 프로토 타입에 사용하겠습니다. 이미 충분할 가능성이 있습니다. 그러나 내 특정 문제와 관계없이 성능 최적화를 위해 어떤 기술이 가장 유망한지 궁금합니다.
특히 스레드 간 정보 흐름에 대한 추가 지식을 사용할 수 있기 때문에 풀링이 이론적으로 최고라고 기대합니다. 그러나 나는 그것이 옳은 것이 가장 어렵다는 것을 두려워합니다. 많은 튜닝 ... :-(
가비지 콜렉션은 나중에 (솔루션 1 이후) 추가하기가 매우 쉬워야하며 성능이 매우 뛰어날 것으로 기대합니다. 따라서 1) 비효율적 인 것으로 판명되면 가장 실용적인 해결책이라고 생각합니다.
객체가 작고 단순하면 값으로 복사하는 것이 가장 빠를 수 있습니다. 그러나 지원되는 메시지를 구현할 때 불필요한 제한이 발생한다고 두려워하므로 피하고 싶습니다.