Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определить размер ОП своего приложения Linux / 5 сообщений из 5, страница 1 из 1
20.04.2018, 16:58
    #39633887
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер ОП своего приложения Linux
Сильно не пинайте, я на линукс смотрю широко открытыми глазами.
Под 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
20.04.2018, 18:18
    #39633929
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер ОП своего приложения Linux
cptngrbА как в Линуксе это сделать?
Читай файл /proc/self/statm. Его описание есть тут .
...
Рейтинг: 0 / 0
23.04.2018, 08:15
    #39634480
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер ОП своего приложения Linux
Kazantsev Alexey, спасибо
...
Рейтинг: 0 / 0
23.04.2018, 11:25
    #39634585
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер ОП своего приложения Linux
Файл прочитал, есть расхождения с диспетчером задач. Не подскажите, может смотрю не туда или не прочитал не так.
/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
23.04.2018, 12:29
    #39634658
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер ОП своего приложения Linux
cptngrbв диспетчере задач приложение ~2,8 ГБ
2.8 ГБ как раз соответствует второму числу 741735. Здесь размер даётся в количестве страниц памяти. Опеределить размер страницы можно sysconf(_SC_PAGESIZE); Таким образом, для страницы 4096 байт, получаем: 741735 * 4096 / 1024 / 1024 / 1024 = 2.8 ГБ.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Определить размер ОП своего приложения Linux / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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