- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 取得当前进程占用内存及线程数
单元 uses TLhelp32;
// 取得当前进程占用内存
function CurrentMemoryUsage: Cardinal;
var
pmc: TProcessMemoryCounters;
begin
pmc.cb := SizeOf(pmc);
if GetProcessMemoryInfo(GetCurrentProcess, @pmc, SizeOf(pmc)) then
result := pmc.WorkingSetSize
else
RaiseLastOSError;
end;
// 取得当前进程的线程数
function GetProcessThreadCount: integer;
var
SnapProcHandle: THandle;
ThreadEntry: TThreadEntry32;
Next: boolean;
begin
result := 0;
SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if SnapProcHandle <> THandle(-1) then
begin
ThreadEntry.dwSize := SizeOf(ThreadEntry);
Next := Thread32First(SnapProcHandle, ThreadEntry);
while Next do
begin
if (ThreadEntry.th32OwnerProcessID = GetCurrentProcessId) then
result := result + 1;
Next := Thread32Next(SnapProcHandle, ThreadEntry);
end;
CloseHandle(SnapProcHandle);
end;
end;