inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

몬스터

안녕하세요 루키스님 메모리 릭 관련해서 질문드립니다.

해결된 질문

274

phz0606

작성한 질문수 4

0

마지막 업로드 파일 기준으로 메모리 릭이 발생되는데요. 서버가 열리지 않았을땐 발생하지 않아서 서버와 연결하는 부분인것 같았고 구글 프로토퍼프때문인가 싶어 검색하여 게임 소멸자에

google::protobuf::ShutdownProtobufLibrary();
이 구문을 추가했더니 조금 릭이 줄긴했지만 여전히 메모리 릭이 발생합니다. 게임세션이나 서비스가 상호참조되어 스마트 포인터가 해제가 안되나 해서 열심히 찾아봤지만 그부분 문제가 아닌것 같더라구요..

어느 부분에서 발생하고 어떻게 고쳐야 하는지 알려주시면 감사하겠습니다.

c++ 네트워크 ue-blueprint 게임수학 windows-api

답변 2

0

Rookiss

위 내용만으로는 알기 힘들지만,
기본적으로 릭을 잡는 방법이 (crtDebug 라이브러리 등)
단순히 new를 오버로딩하여 , 프로그램 종료 후 해제되지 않는 것을 추적하는 것인데요.

외부 라이브러리를 사용하다 보면, 메모리 릭 라이브러리보다
소멸이 늦게 되는 경우 다 릭으로 떠서
꼭 문제가 있따고 보장하기 힘듭니다.

그리고 실전에서는 그 정도로 빽빽하게 릭을 잡지는 않습니다. (그러기도 힘듭니다)_

0

인프런 AI 인턴

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

질문하신 메모리 릭 관련 문제는 매우 복잡하며, 다양한 원인에 의해 발생할 수 있습니다. 게시글 내용을 통해 파악한 바에 따르면, google::protobuf::ShutdownProtobufLibrary(); 구문 추가로 메모리 릭이 일부 감소했지만 여전히 문제가 지속되는 상황입니다. 이와 유사한 상황에 대해 지식공유자 루키스님께서 제공한 답변을 정리해 드리겠습니다.

메모리 릭 문제 해결과 관련하여 다양한 경우가 있지만, 강의 내에서 루키스님은 메모리 릭 해결에 대해 몇 가지 중요한 포인트를 제시합니다. 가장 흔한 메모리 릭 원인 중 하나는 동적 할당한 메모리의 올바른 해제를 하지 않는 것입니다. 이 경우, 프로그래머는 할당한 메모리를 적절히 delete 하거나 free 해야 하며, 스마트 포인터 등을 사용하여 자동 메모리 관리를 도입하는 것이 좋습니다.

또한, 게임 개발과 관련하여 루키스님은 소멸자 내에서 리소스를 적절히 해제하는 것의 중요성을 강조했습니다. google::protobuf::ShutdownProtobufLibrary();와 같은 구문을 추가하는 것이 좋은 접근이 될 수 있지만, 모든 동적 할당된 리소스를 적절히 관리하는 것이 필수적입니다.

유사한 상황에 대한 구체적인 답변은 다음 게시글에서 확인하실 수 있습니다:

  • 메모리 누수와 관련된 질문에 대해 루키스님이 제공한 답변을 참고하시면 일반적인 메모리 릭 문제 해결에 도움이 될 수 있습니다: 메모리가 줄줄 새고 있습니다

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

문제집은 없나요 수업을 어떻게 들어야 할지 모르겠어요

0

117

2

동적배열 Vector의 push_back 함수에서 조건문 질문

0

77

1

디버깅할때 메모리보는법 단축키가 뭐죠??

0

94

1

113-충돌처리 강의에서 22:26 부근의 SetPos()를 적용해도 충돌되지 않고 뚫고 지나가게 됩니다.

0

90

1

SaveFile에서 크래시 발생하는 분들 체크해보세요

1

70

1

수업자료 확인 부탁드립니다.

0

106

3

explicit을 붙였을 때 빨간줄이 뜨는 이유가 맞는지 궁금합니다.

0

101

0

22강에서 구조체와 포인터로 설명해주셨는데 패딩의 경우는 어떻게 되나요?

0

89

2

리소스 매니저 강의 18분 부근

0

89

1

[Service강의] owner -> shared_ptr

0

80

2

C#에서 생성자 관련 질문

0

85

2

특정 조건에서만 함수를 반환할 때

0

91

2

스택 empty

0

105

2

섹션4 배열실습 질문입니다.

0

133

1

섹션3 '파일분할' 강의 질문입니다.

0

99

1

Defines.h의 DECLARE_SINGLE관련 질문입니다.

0

112

1

세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.

0

184

3

섹션9 함수 포인터 관련 질문입니다.

0

137

1

exercise_A 번 문제 해결방법에 대한 질문.

0

152

1

[강의명: virtual 소멸자] 자식 클래스의 소멸자에도 virtual 을 붙이시는 이유가 궁금합니다

0

200

2

Scene과 SceneManager 강의 수강 중 키보드 입력 오류

0

151

1

Window API 강의 수강 중 LARGE_INTEGER 타입 변환 오류

0

199

3

섹션15 스마트 포인터 20:00 질문이요!

0

129

1

55강 수업자료 빌드를 하면 이상합니다.

0

133

1