Как узнать количество занимаемой приложением оперативной памяти в delphi?

Пользователь

от jose , в категории: Другие , 2 года назад

Как узнать количество занимаемой приложением оперативной памяти в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stephania , 2 года назад

@jose 

Для получения информации о количестве занимаемой приложением оперативной памяти в Delphi вы можете использовать функцию GetProcessMemoryInfo, которая определена в библиотеке psapi.dll.


Вот пример кода, который демонстрирует использование этой функции:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
uses
  Psapi;

procedure GetMemoryUsage(var MemUsage: Cardinal; var PeakMemUsage: Cardinal);
var
  ProcessHandle: THandle;
  ProcessMemoryCounters: TProcessMemoryCounters;
begin
  ProcessHandle := GetCurrentProcess;
  if GetProcessMemoryInfo(ProcessHandle, @ProcessMemoryCounters, SizeOf(ProcessMemoryCounters)) then
  begin
    MemUsage := ProcessMemoryCounters.WorkingSetSize;
    PeakMemUsage := ProcessMemoryCounters.PeakWorkingSetSize;
  end;
end;


Эта функция сохраняет текущее количество оперативной памяти, используемой приложением, в переменной MemUsage, а максимальное количество оперативной памяти, использованное приложением, в переменной PeakMemUsage.


Вы можете вызвать эту функцию в любом месте вашего кода, чтобы получить текущую информацию об использовании оперативной памяти вашим приложением.

Пользователь

от marlen , 6 месяцев назад

@jose 

Вот еще один способ получения информации о занимаемой оперативной памяти в приложении Delphi:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
uses
  SysUtils, Classes, Windows;

function GetMemoryUsage: Cardinal;
var
  MemCounters: TMemoryCounters;
begin
  MemCounters.cb := SizeOf(MemCounters);
  if GetProcessMemoryInfo(GetCurrentProcess, @MemCounters, SizeOf(MemCounters)) then
    Result := MemCounters.WorkingSetSize
  else
    Result := 0;
end;


Эта функция возвращает количество оперативной памяти, используемое текущим процессом. Вы можете вызвать эту функцию и получить количество занимаемой оперативной памяти в байтах.


Обе функции предоставляют информацию о занимаемой оперативной памяти и позволяют отслеживать текущее и максимальное использование памяти вашим Delphi-приложением.