728x90
안녕하세요
로로봉입니다 : )
델파이를 이용해 메모리 사용량에 대한 정보를 구해보도록 하겠습니다.
우선 메모리 Usage에 대해 관련 함수를 사용하기 위해 아래와 같이 uses절에 psAPI를 추가해주어야 합니다.
uses
psAPI;
psAPI 파일에서는 현재 프로세스에서 사용중인 메모리 사용량을 조회할 수 있습니다. 또한 전체 메모리 관련 정보도 얻을 수 있습니다.
현재 메모리 사용량은 아래와 같이 구할 수 있습니다.
function CurrentMemoryUsage: Cardinal;
var
PMCnt : TProcessMemoryCounters;
begin
PMCnt.cb := SizeOf(pmc);
if GetProcessMemoryInfo(GetCurrentProcess, @PMCnt, SizeOf(PMCnt)) then
result := PMCnt.WorkingSetSize
else
RaiseLastOSError;
end;
- 현재 프로세스 메모리 사용량 가져오기 : GetProcessMemoryInfo
- 현재 프로세스 핸들 가져오기 : GetCurrentProcess
다음으로는 시스템 전체 메로리의 상태를 가져와보도록 하겠습니다.
procedure
var
Buffer : _MEMORYSTATUS;
begin
GlobalMemoryStatus(Buffer);
Buffer.dwMemoryLoad;
end;
- 시스템 메모리 상태 가져오기 : GlobalMemoryStatus
_MEMORYSTATUS 구조체로 정보를 넘겨 받으며 해당 구조체의 각 변수에는 아래와 같은 정보가 넘어옵니다.
DwLength DWORD : 이 구조의 길이
- GlobalMemoryStatus 함수가 조정되기 전에 sizeof () 함수로 얻은 MEMORYSTATUS 구조체의
크기이며 함수가 구조체 버전을 감지하는 데 사용됩니다.
DwMemoryLoad DWORD : 사용 된 메모리 비율
- 현재 시스템 메모리 사용량을 나타 내기 위해 0에서 100 사이의 값을 반환합니다.
DwTotalPhys DWORD : 총 물리적 메모리
- 총 실제 메모리 크기 (바이트)를 반환합니다.
DwAvailPhys DWORD : 사용 가능한 실제 메모리
- 사용 가능한 실제 메모리 크기를 바이트 (바이트)로 반환합니다.
DwTotalPageFile DWORD : 스왑 파일의 총 크기
- 페이지 파일에 저장할 수있는 바이트 수를 표시합니다.
이 값은 디스크에있는 페이지 파일의 실제 물리적 크기를 나타내지 않습니다.
DwAvailPageFile DWORD : 스왑 파일의 여유 부분 크기
- 사용 가능한 페이지 파일의 크기를 바이트 단위로 반환합니다.
DwTotalVirtual DWORD : 사용자가 사용할 수있는 주소 공간
- 호출 프로세스의 사용자 모드 부분에서 사용 가능한 모든 가상 주소 공간을 바이트 단위로
반환합니다.
DwAvailVirtual DWORD : 현재 사용 가능한 주소 공간
- 호출 프로세스의 사용자 모드 부분에서 실제로 사용 가능한 가상 주소 공간을 바이트 단위로
반환합니다.
좋아요 ♥ + 구독부탁드립니다. : )
728x90
반응형
'개발 정보 > 델파이' 카테고리의 다른 글
[Delphi] 델파이 안드로이드 구글스토어 배포 빌드 방법 (8) | 2021.08.04 |
---|---|
[Delphi] 델파이 현재 프로세스 스레드 수 얻기 (0) | 2021.06.11 |
[Delphi] 델파이 DataSnap 이미지 전송 (0) | 2021.06.07 |
[Delphi] 델파이 컴포넌트(Component) 설치 방법 (5) | 2021.05.27 |
[Delphi] 델파이 10.4 Sydney iOS AppStore 배포하기 (4) | 2021.04.24 |
댓글