자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey [문의]프로그램 메모리릭 오류 체크
2021.03.25 17:38
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
현재 C++ Builder 10.3 Communication Edition을 사용해서 안드로이드 프로그램 작성 중입니다.
FMX기반에서,,
메모리릭을 체크하기 위해 윈도우 리소스 모니터 프로그램을 띄워놓고 어플리케이션을 실행하면서 확인하고 있습니다.
어플리케이션 화면 상에서 특정 버튼 선택하면 동적으로 TGridPanelLayout 생성/반복을 계속 하는데
이때 [작업 집합(KB)] 항목의 메모리사용량이 줄지 않고 계속 증가하는데,,, 이는 메모리 누수로 보아야 하는 건가요?
참고로 ,,
아래 소스에서 처럼 메모리릭 체크하고 어플리케이션 실행하고 테스트 후 종료해도 메모리릭 오류 메시지 박스는
표시되지 않습니다.
===============================
extern "C" int FMXmain()
{
try
{
ReportMemoryLeaksOnShutdown = True; //(add, 2021/03/25, checking memory leak)
Application->Initialize();
Application->CreateForm(__classid(TMainFrm), &MainFrm);
Application->CreateForm(__classid(TFormPaymentDlg), &FormPaymentDlg);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
===============================
감사합니다.
Firemonkey [문의]프로그램 메모리릭 오류 체크
2021.03.25 17:38
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요.
현재 C++ Builder 10.3 Communication Edition을 사용해서 안드로이드 프로그램 작성 중입니다.
FMX기반에서,,
메모리릭을 체크하기 위해 윈도우 리소스 모니터 프로그램을 띄워놓고 어플리케이션을 실행하면서 확인하고 있습니다.
어플리케이션 화면 상에서 특정 버튼 선택하면 동적으로 TGridPanelLayout 생성/반복을 계속 하는데
이때 [작업 집합(KB)] 항목의 메모리사용량이 줄지 않고 계속 증가하는데,,, 이는 메모리 누수로 보아야 하는 건가요?
참고로 ,,
아래 소스에서 처럼 메모리릭 체크하고 어플리케이션 실행하고 테스트 후 종료해도 메모리릭 오류 메시지 박스는
표시되지 않습니다.
===============================
extern "C" int FMXmain()
{
try
{
ReportMemoryLeaksOnShutdown = True; //(add, 2021/03/25, checking memory leak)
Application->Initialize();
Application->CreateForm(__classid(TMainFrm), &MainFrm);
Application->CreateForm(__classid(TFormPaymentDlg), &FormPaymentDlg);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
===============================
감사합니다.
파이어몽키 경우는 10.3 까지는 메모리 매니지먼트 내부코드는 ARC(Automatic Reference Count)를 이용해서 구현되어 있습니다. 참고로 10.4 에서는 메모리 관리가 통합 메모리 관리로 변경됩니다.) 일부에서는 arc에서 메로리 릭이 발생하는 경우가 가끔 있다고 합니다. 하지만 필요하시면 vcl과 마찬가지로 free를 통해 해제 해주시면 됩니다. 즉 gridpanellayout 생성하시고 free로 해제하십시오. 자동으로 해제가 되는경우는 폼이 해제되면서 gridpanelLayout이 해제됩니다.