我試圖找到一個重大的內存泄漏(一次15MB,但在多個地方做這樣的分配)。我檢查了最明顯的地方,然後使用了AQTime,但我仍然無法找到它。現在我看到左邊2種選擇:使大內存分配過程崩潰
1)使用SetProcessWorkingSetSize:我試過,但我高興地過程中使用了更多的則150MB當運行保持:分配更多的時候
DWORD MemorySize = 150*1024*1024;
SetProcessWorkingSetSize(GetCurrentProcess(), MemorySize/2, MemorySize*2);
2)把一個斷點然後一次1MB。我該如何做到這一點,超載運算符新的'如果> 1MB'在裏面?
你在哪裏得到15MB號碼?操作系統聲稱你的進程使用了多少空間?很多時候標準庫會分配比您請求的更多的內存,並保留下一個新的內存。例如,1000個15K的分配仍然可能顯示爲一次泄漏15MB。 – 2010-04-12 17:32:28