PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 29

 
sergeev :

핸들이 닫히면 메모리(CreateFileMapping에 지정된 메모리를 초과하여 할당됨)가 반환되지 않습니까?
풀려났다. 하지만 그게 끝입니다. 작업 과정에서 메모리를 절약해야 합니다.
 
무엇의 끝에? Windows를 종료하거나 핸들을 닫거나 응용 프로그램을 닫으십니까?
 
sergeev :
무엇의 끝에? Windows의 끝 또는 핸들을 닫거나 응용 프로그램을 닫으십니까?
누구나 선택할 수 있습니다. 그래도 이게 끝입니다.
 
글쎄, 핸들을 닫을 때 메모리 누수가 발생하지 않는다면 이것은 Windows의 일반적인 작업입니다. 핸들이 삭제될 때 메모리를 확보하는 것입니다.
 

어떻게 든 그것은 잘못되었습니다 - 설명자를 닫아 작업 과정에서 메모리를 해제합니다.

Windows에 대한 희망 없이 메모리를 해제해야 합니다.

 
:) 하지만 그것을 해제하는 다른 방법은 무엇입니까? 선택한 다음 삭제된 모든 것. MSDN에서 매핑으로 작업할 때 핸들을 닫기 전에 메모리를 수동으로 해제 하는 것에 대해서는 아무 말도 하지 않습니다.
 
sergeev :
:) 하지만 그것을 해제하는 다른 방법은 무엇입니까? 선택한 다음 삭제된 모든 것. MSDN에서 매핑으로 작업할 때 핸들을 닫기 전에 메모리를 수동으로 해제하는 것에 대해서는 아무 말도 하지 않습니다.
그래서 손잡이를 닫은 후에 얘기하는 것이 아닙니다. 메모리로 작업하는 동안 할당 크기를 동적으로 변경합니다. 그러나 항상 할 필요도 없습니다. 지속적인 재할당에는 시간이 걸립니다.
 

바딤. 정확히 무엇을 이해합니까?

나는 메모리를 확장하는 두 가지 방법 을 찾았습니다. 두 경우 모두 메모리 누수에 문제가 있다고 생각하십니까?

 

모든 손잡이가 닫혀 있으면 누출이 없습니다. 누수는 프로그램이 언로드되었지만 리소스가 점유된 상태로 남아 있는 경우입니다.

그러나 지나치게 큰 메모리 소비 문제가 발생할 수 있습니다. 나는 최근에 이것을 발견했다. 시계열 작업을 위해 잘못된 클래스를 연결했습니다. 연결됨, 초당 틱을 인덱싱합니다. 월간 바를 작업하는 그런 수업이되었습니다. 30초 만에 모든 메모리가 소진되었습니다. 이것은 옵션 중 하나입니다. 이것은 모니터링하고 예방해야 합니다.

두 번째 옵션은 프로그램에 많은 메모리(예: 1000MB)가 필요하지만 오래 지속되지 않는 경우입니다. 릴리스되지 않은 경우 나머지 프로그램은 프로그램이 언로드될 때까지 이 1000MB를 덜 갖게 됩니다.

한마디로 자원의 소비를 추적할 필요가 있다.

 
확인. 참작하다.