powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в Delphi узнать размер памяти определённого процесса?
25 сообщений из 37, страница 1 из 2
Как в Delphi узнать размер памяти определённого процесса?
    #40078400
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в Delphi узнать размер памяти определённого процесса? Например ibserver.exe

Может вопрос не новый, но не получилось отыскать ответ на форуме, прошу подсказать.
Заранее благодарен
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078403
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078422
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость


а на Delphi пример можно?
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078433
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я был уверен, что одним ответом не ограничится.
SergeyKNP,
тебе и пример мало чем поможет, нужно разбираться c принципами работы менеджера памяти винды
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078434
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соколинский Борис,

мне был полезен самый простой пример, по нажатию кнопки получить размер занимаемой в настоящий момент памяти ibserver.exe.
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078487
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP> а на Delphi пример можно?

Конечно, можно. А ещё можно и нужно пользоваться
поиском - это гораздо быстрее, чем ждать ответа:

https://sql.ru/forum/actualsearch.aspx?search=GetProcessMemoryInfo&bid=20
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078539
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP
получить размер занимаемой в настоящий момент памяти
Какой именно памяти?
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078541
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> К сообщению приложен файл

Какая ужасная локализация, жесть.

Это SI.PE ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078544
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Какая ужасная локализация, жесть.
Ага. Я после XP так и не выучил где здесь кто
Гаджимурадов Рустам
Это SI.PE ?
Стандартный TaskManager Win10
Код: plaintext
1.
2.
3.
Выпуск	Windows 10 Pro
Версия	20H2
Сборка ОС	19042.1052
Взаимодействие	Windows Feature Experience Pack 120.2212.2020.0
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078574
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Стандартный TaskManager Win10

Дык замени эту каку на Process Explorer
(из Winternals чи как они там щас называются)
или любой другой сторонник таск-менеджер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078589
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Дык замени эту каку на Process Explorer
Я к нему привык :)
Мне от него нужно - это прибить процесс и смотреть на потребляемые ресурсы процесса. Если память течет, мне не важно, что это за память
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078594
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_> Я к нему привык :)

К хорошему привыкнешь быстрее. :)

_Vasilisk_> Мне от него нужно - это прибить процесс и
_Vasilisk_> смотреть на потребляемые ресурсы процесса.

Таки в PE это (и многое другое) делать шибко удобнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078595
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, в десятке уже пофиксили баг с подсветкой кнопок на такбаре, когда она не гасилась
при уходе с них мыши?

Специально для этого бага у стандартного таск менеджера есть костыль в виде пункта меню
"перезапустить" на проводнике.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078751
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_,

Рабочий набор (память)
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078754
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

там не того, что мне нужно (либо у меня нет достаточного опыта), поэтому и прошу конкретный пример если можно
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078795
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

Скажи зачем и я тебе дам пример кода получения инфы по процессу.
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078803
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
им компанента нужна
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078804
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Тут - "программист нужОн" (с) Мимопроходящий
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078821
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster
SergeyKNP,

Скажи зачем и я тебе дам пример кода получения инфы по процессу.


Планирую написать небольшой мониторинг с графиком, по параметрам:
1.Текущая память InterBase 7.5 (не пинайте, понимаю, что старьё, но пока не переписаны все старые проекты не могу перейти на FireBird)
2.Текущее количество коннектов

...ну может ещё какие-то параметры

всё это будет инсертиться в БД для хронологии и построения представления в виде графика например
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078852
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,


Ну примерно так попробуй. Выкусывал из рабочего кода - так что кое-что может быть лишним и begin.. end пропущен где-то.

Код: pascal
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
Procedure GetProcessInformation (hProcessID:cardinal; L:TStrings);

var hProcess: cardinal; 
       MaxWorkSet,MinWorkSet:cardinal;
       ALib,Kernel:THandle;
       GPIF:TGetProcessImageFile;
       GPMI:TGetProcessMemoryInfo;
       IsWow64Process:TIsWow64Process;
       ImageName:array[0..4096] of char;
       PMInfo:TProcessMemoryCounters;
       SBuf:string;
 
begin       

  hProcess:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,hProcessID);

  if (hProcess>0) then
     begin

      GetProcessWorkingSetSize(hProcess,MaxWorkSet,MinWorkSet);
      // занятые ресурсы 
      L.Add(Format('Process: %s',[SBuf]));
      L.Add(Format('Process ID: %d',[hProcessID]));
      L.Add(Format('Working set size: Max=%d Min=%d',[MaxWorkSet,MinWorkSet]));
      L.Add(Format('GUI resources: GDI=%d User=%d',[GetGuiResources(hProcess,0),GetGuiResources(hProcess,1)]));

      // приоритет

      SBuf:='Priority=%s';

      MinWorkSet:=GetPriorityClass(hProcess);
      if (MinWorkSet and $00008000)>0 then //  ABOVE_NORMAL_PRIORITY_CLASS
         SBuf:=Format(SBuf,['ABOVE NORMAL']);
      if (MinWorkSet and $00004000)>0 then // BELOW_NORMAL_PRIORITY_CLASS
         SBuf:=Format(SBuf,['BELOW NORMAL']);
      if (MinWorkSet and HIGH_PRIORITY_CLASS)>0 then  // 0x00000080
         SBuf:=Format(SBuf,['HIGH']);
      if (MinWorkSet and IDLE_PRIORITY_CLASS)>0 then  // 0x00000040
         SBuf:=Format(SBuf,['IDLE']);
      if (MinWorkSet and NORMAL_PRIORITY_CLASS)>0 then  // 0x00000020
         SBuf:=Format(SBuf,['NORMAL']);
      if (MinWorkSet and REALTIME_PRIORITY_CLASS)>0 then  // 0x00000100
         SBuf:=Format(SBuf,['REALTIME']);
      L.Add(SBuf);

      // process memory info

      if SysUtils.Win32MajorVersion>=5 then // XP or higher
         begin
           ALib:=LoadLibrary('psapi.dll');
           if (ALib>0) then
              begin
                 @GPMI:=GetProcAddress(ALib,'GetProcessMemoryInfo');
                 if @GPMI<>nil then
                    begin
                      if GPMI(hProcess,PMInfo,SizeOf(PMInfo)) then
                         begin
                           L.Add('Memory info:');
                           L.Add('Pages fault      ='+FormatInteger(PMInfo.PageFaultCount)+' '+
                                    'Working set size ='+FormatInteger(PMInfo.WorkingSetSize)+' '+
                                    'Page file usage  ='+FormatInteger(PMInfo.PagefileUsage));
                         end;
                    end;
                 FreeLibrary(ALib);
              end;
         end;

        CloseHandle(hProcess);

       end;
  end;
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078862
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster
Ну примерно так попробуй.
Сейчас будет вопрос - как получить ProcessId и что такое TGetProcessMemoryInfo
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078899
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Модератор: Предупреждение за хамство.
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078900
SergeyKNP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

ругается на
GetProcessWorkingSetSize(hProcess, MaxWorkSet, MinWorkSet);

[dcc32 Error] Unit1.pas(62): E2033 Types of actual and formal var parameters must be identical
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078902
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
DarkMaster
Ну примерно так попробуй.
Сейчас будет вопрос - как получить ProcessId и что такое TGetProcessMemoryInfo
Нее. Там ещё всё запущеннее...))
SergeyKNP
GetProcessWorkingSetSize(hProcess, MaxWorkSet, MinWorkSet);

[dcc32 Error] Unit1.pas(62): E2033 Types of actual and formal var parameters must be identical
...
Рейтинг: 0 / 0
Как в Delphi узнать размер памяти определённого процесса?
    #40078903
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyKNP,

Используй DWORD вместо Cardinal...
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как в Delphi узнать размер памяти определённого процесса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]