http://my.oschina.net/kavensu/blog/194765
delphi实时监视应用程序内存使用量
发表于1年前(2014-01-21 16:26) 阅读(262) | 评论(0) 4人收藏此文章, 我要收藏
赞0
寻找 会’偷懒’的开发者线下公开课,报名即享受免费体验云主机
当你的产品已经完成了客户的需求功能,你是否已经认为你的产品已经完成了呢?如果你的客户在使用你
的产品一段时间后跑来向你诉苦:“产品用的时间越久,速度就越慢”,那么你就需要注意你的产品是否
存在内存泄露了。想要实时查看你的产品的内存使用量,下面来告诉你一个方法。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//----需要Uses PsAPI单元。---- www.delphitop.comfunction GetProcessMemUse(PID: Cardinal): Cardinal;varpmc: PPROCESS_MEMORY_COUNTERS; //uses psApiProcHandle: HWND;iSize: DWORD;beginResult := 0;iSize := SizeOf(_PROCESS_MEMORY_COUNTERS);GetMem(pmc, iSize);trypmc^.cb := iSize;ProcHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False, PID); //由PID取得进程对象的句柄if GetProcessMemoryInfo(ProcHandle, pmc, iSize) thenResult := pmc^.WorkingSetSize;finallyFreeMem(pmc);end;end;function GetCurrentMemUse: Cardinal;beginResult := GetProcessMemUse(GetCurrentProcessId);end; |
注:GetCurrentProcess返回进程句炳(只在此进程有效)
GetCurrentProcessID返回的进程的唯一标识(整个操作系统有效)
在使用的时候,可以在你的主窗体加一个TStatusbar,放一个TTimer用来实时显示内存使用量:
StatusBar.Panels[2].Text := format('memory use: %d KB', [GetCurrentMemUse div 1024]);//1kb=1024b
把代码放到你的程序里,看看你的代码有没有管理好内存。
delphi lazarus opengl
网页操作自动化, 图像分析破解,游戏开发