В поисках утечки памяти я использую MemProof и могу видеть в реальном времени количество используемых, созданных и уничтоженных ресурсов.Проработав мою программу более полутора дней, я заметил, что при прочих равных условиях виртуальная память (ВМ) увеличивается.Он начался в 109, а теперь в 113 после 24 часов.
Это то, что MemProof говорит для каждой утечки ВМ:
VirtualAlloc (address_location, 16384, 4096, 4);Он идентифицируется как виртуальная память, и его размер всегда равен 16384. Имя API - VirtualAlloc.Этот модуль - kernel32.dll.
Кроме того, memproof говорит: «virtualalloc резервирует или фиксирует область страниц в виртуальном адресном пространстве вызывающего процесса. Выделенные страницы должны быть освобождены с помощью virtualFree, когда они больше не нужны».
Утечка ВМ связана с функцией в файле System.Pas.
Функция выглядит следующим образом:
function GetCmdShow: Integer;
var
SI: TStartupInfo;
begin
Result := 10; { SW_SHOWDEFAULT }
GetStartupInfo(SI);
if SI.dwFlags and 1 <> 0 then { STARTF_USESHOWWINDOW }
Result := SI.wShowWindow;
end; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
У меня меньше знаков, указывающих наКлючевое слово "end" - это то, куда Memproof ведет меня, когда я нажимаю на утечку (и) виртуальной памяти.
Итак, что это значит?