内存资源泄漏的问题 |
尚未結案
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
大大们好啊!小弟我又有问题了,劳您们废心了< >
经常在程式中遇见内存资源泄漏,但是不知道如何去判断(连用什么工具检查都不知道< >),只能凭感觉。我只知道可以用Win2000/XP自带的任务管理器去看.
下面是我的测试例子,希望大大们看了以后能给我点拨一下
"开始"->"运行"-> class="code">
set PATH = C:\Program Files\Borland\CBuilder5\Bin
set INCLUDE = C:\Program Files\Borland\CBuilder5\Include
set LIB = C:\Program Files\Borland\CBuilder5\Lib
然后是用做测试的test.cpp代码:
#include "iostream.h" #include "windows.h" void main(void) { char *lp; lp = new char[3000]; //声明一个指针数组,并分配内存 cout<<"Memory has been assigned"<
------
人生在勤,不索何获? |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
如果沒有原代碼(原始碼),那就只有用工作管理員囉,如下圖:
把內存(記憶體)相關的欄位打開,並且加 GDI、USER物件、執行緒等都打開,接著去執行要測試的程式,如果執行的過程內存占用量變大,並且在操作完後,例如:搜尋、代換、排序、處理某個演算法、或某個流程,發現占用的內存還是一樣大,並沒有因為操作完而減少,此時,通常表示此操作的過程有占用內存不釋放的情況。
如果像您的 test 測試程式,系統在會關閉它的同時,將它所占用的內存清空,所以,不會有內存占用或愈來愈少的情況,您可以試著連續多次執行您的 test.exe 再由工作管理員查看就可能了解。
會發生占用內存不放是一個程式必需長時間執行,而在執行的過程如果有占用不放的情況,那內存就會愈來愈少!此時,將這個程式關閉,系統就會自動將它占用不放的內存釋放(至少 NT/2K/XP 的系統是這樣的)。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |