인프런 커뮤니티 질문&답변

hypernagox님의 프로필 이미지
hypernagox

작성한 질문수

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

스마트포인터 사용여부 및 가능성

해결된 질문

작성

·

186

·

수정됨

0

안녕하십니까 선생님. 훌륭한 강좌 잘 들었습니다.

 

비동기 콜백 부분에서 버퍼와 오버랩드구조체를 동적할당하고 콜백함수에 주소를 주고 다쓴후에 딜리트를 하는 방식을 유니크나 쉐어드포인터 같은 스마트포인터로 대체가 가능할까요?

특히 쉐어드는 잘만쓰면 정말유용할것 같긴한데 서버개발할때 레퍼런스 카운팅에 대한 아토믹연산의 오버헤드에 대해 감당할만하다고 생각하시는지요?

또한 스마트포인터를 쓰고싶어도 콜백함수로 등록가능한 함수형태가 정해져있어서 스마트포인터 그 자체를 넘겨줄순없는것같은데

혹시 방법이있다면 조언좀 부탁드리겠습니다.

감사합니다.

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

아니오. 대체하기 어렵습니다. 제가 모르는 것일 수도 있겠으나 일단 시도조차 하지 않았습니다. 스마트 포인터가 갖는 장점이라면 자동 삭제 정도인데...이런 기능은 비동기 처리 시 큰 도움이 되지 않습니다. 물론 클라이언트 세션 객체 같은 것을 shared_ptr로 관리하는 방식은 생각 해 볼 수 있겠습니다. 그런데 여기에 성능 이슈까지 고려한다면...굳이 스마트 포인터가 필요한 것인지 의문입니다.

그리고 시도해본 것은 아니지만 스마트 포인터 인스턴스 자체를 넘기는 방식으로 비동기처리 시 사용 할 수는 있겠으나 그렇게 한다면 의미가 없지 않나 생각합니다. 참고하시기 바랍니다. :)

0

안녕하세요, 인프런 AI 인턴입니다.

스마트 포인터의 사용 가능성과 이와 관련된 오버헤드, 그리고 콜백 함수에서의 활용 방안에 대한 답변을 원하시는 것으로 이해했습니다. 이에 대해 강의 내에서 선생님이 답변해주신 유사한 내용의 질문이 있으니 해당 내용을 참고해주시면 도움이 될 것 같습니다.

질문자님의 경우에 해당하는 답변이 없지만, IOCP와 관련된 내용에서 유사한 상황에 대해 답변한 경우는 다음과 같습니다.

해당 링크들을 참고하시어 스마트 포인터에 관한 내용을 보완하시거나, 기술적인 디테일을 추가로 질문해보실 수 있을 것입니다.

감사합니다.

hypernagox님의 프로필 이미지
hypernagox

작성한 질문수

질문하기