powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определить размер ОП своего приложения Linux
5 сообщений из 5, страница 1 из 1
Определить размер ОП своего приложения Linux
    #39633887
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильно не пинайте, я на линукс смотрю широко открытыми глазами.
Под Windows я определяю размер и сравниваю с предельно допустимым значением вот так
Код: 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.
function TryMemoryOF: boolean;
var
  pmc: PPROCESS_MEMORY_COUNTERS;
  cb: Integer;
  ppp: int64;
begin
 result:= false;
 try
   cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
   GetMem(pmc, cb);
   try
      pmc^.cb := cb;
      if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
      begin

        ppp:=round(pmc^.PagefileUsage/1048576);
        if ppp> sizeOP then
        result:=true
        else
        result:=false;
      end;

   finally
     FreeMem(pmc);
   end;
 except

 end;
end;



А как в Линуксе это сделать?
...
Рейтинг: 0 / 0
Определить размер ОП своего приложения Linux
    #39633929
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbА как в Линуксе это сделать?
Читай файл /proc/self/statm. Его описание есть тут .
...
Рейтинг: 0 / 0
Определить размер ОП своего приложения Linux
    #39634480
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey, спасибо
...
Рейтинг: 0 / 0
Определить размер ОП своего приложения Linux
    #39634585
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл прочитал, есть расхождения с диспетчером задач. Не подскажите, может смотрю не туда или не прочитал не так.
/proc/[pid]/statm
Provides information about memory usage, measured in pages.
The columns are:

size (1) total program size
(same as VmSize in /proc/[pid]/status)
resident (2) resident set size
(same as VmRSS in /proc/[pid]/status)
shared (3) number of resident shared pages (i.e., backed by a file)
(same as RssFile+RssShmem in /proc/[pid]/status)
text (4) text (code)
lib (5) library (unused since Linux 2.6; always 0)
data (6) data + stack
dt (7) dirty pages (unused since Linux 2.6; always 0)


в диспетчере задач приложение ~2,8 ГБ, а в файле
1138953 741735 9857 1334 0 958226 0
в интернетах почему то пишут, что это только (1) total program size,
но приблизительный размер получается только если (1) + (2) + (6)
...
Рейтинг: 0 / 0
Определить размер ОП своего приложения Linux
    #39634658
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbв диспетчере задач приложение ~2,8 ГБ
2.8 ГБ как раз соответствует второму числу 741735. Здесь размер даётся в количестве страниц памяти. Опеределить размер страницы можно sysconf(_SC_PAGESIZE); Таким образом, для страницы 4096 байт, получаем: 741735 * 4096 / 1024 / 1024 / 1024 = 2.8 ГБ.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определить размер ОП своего приложения Linux
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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