![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить размер памяти занимаемой программой из самой прогр
Raduga © (2003-05-22 15:24:00)Ребята, подскажите пожалуйста , как из проги узнать сколько места она занимает в памяти (чтоб выводилось куда-нибудь на форму).
Zelius (2003-05-23 12:41:00) [1]Windows Management Instrumentation позволяет получить практически любую информацию, в том числе и ту, что в Task Manager живет.
Fantasist. (2003-05-23 07:11:00) [2]
> Ну например DLL
Если только. Но частности, которые можно конролировать, если длл-ка твоя. Конечно, существуют еще системные выделение памяти, например, для поддержки COM, которую действительно посчитать тяжеловато. Но в принципе эти вещи можно отключить во время тестирования памяти. Хорошо согласен, определени сабжа действительно не всегда тривиально, но во многих случаях вполне реально.
Anatoly Podgoretsky (2003-05-22 20:16:00) [3]Ну например DLL
Кулюкин Олег (2003-05-22 17:11:00) [4]AllocMemSize не поможет?
Fantasist. (2003-05-22 17:03:00) [5]
> KSergey © (22.05.03 16:16)
> Нет
А что так сурово? А зачем тогда функция GetHeapStatus (Returns the current status of the memory manager)? Вся выделяемая динамическая память средствами дельфийского паскаля проходит через стандартный менеджер, и если он не подменен, то вроде проблем быть не должно. Если есть выделение памяти с помощью API, так это тоже считывается с помощью тех же API. Память выделенная под стек статична. Чего еще упускаем?
P.S. Можно еще подменить built-in манаджер памяти (SetMemoryManager) подменить и самому следить за выделением освобождением памяти.
clickmaker (2003-05-22 16:36:00) [6]yaJohn © (22.05.03 16:19)
Для борьбы с утечками я поступаю дешево и сердито: определяю сколько памяти осталось
...затем потихоньку начинаю чикать чужие процессы. Не хрен у меня память отымать! ;)
yaJohn (2003-05-22 16:19:00) [7]Для борьбы с утечками я поступаю дешево и сердито: определяю сколько памяти осталось
function GetFreeMemory: integer;
var uMemStatus: _MEMORYSTATUS;
begin
GlobalMemoryStatus(uMemStatus);
result := uMemStatus.dwAvailPhys;
end;
KSergey (2003-05-22 16:17:00) [8]Обсуждалось не так давно
KSergey (2003-05-22 16:16:00) [9]Нет
Raduga (2003-05-22 16:10:00) [10]Вообще такое возможно?