2010-01-17 7 views
2

boost::interprocess::string 공유 메모리에 문제가 있습니다.공유 메모리 및 문자열 : 관리 되었습니까?

shared_memory_object을 사용할 때 다른 필드를 사용하여 구조체를 조작 할 수 있지만 문자열 (세그먼트 오류가 발생 함).
다른 측면에서, 내가 managed_shared_memory을 사용할 때 모든 것이 좋습니다.

내가 잘못 했나요? managed_shared_memory을 사용하여 성능 패널티가 있는지 알고 있습니까?

감사합니다.

답변

1

부스트 프로세스에서 문자열을 사용하는 경우 this question을 참조하십시오.

성능 측면에서 볼 때, 프로세스간에 메모리를 공유하는 것이 다른 솔루션 (이것이 존재하는 이유)보다 우수해야합니다. 프로세스간에 데이터를 공유하는 다른 모든 방법에는 공유 메모리가 필요하지 않은 오버 헤드가 있습니다 (TCP의 경우 패킷 헤더 + IO, DB의 경우 DB 왕복 등)