The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

[Solaris] Определение объема ОЗУ в программе (memory info solaris)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: memory, info, solaris,  (найти похожие документы)
Date: Tue, 29 Jan 2002 10:20:20 +0300 From: Eugene Exarevsky <Eugene.Exarevsky@f17.n5025.z2.fidonet.org> Newsgroups: fido7.ru.unix.prog Subject: [Solaris] Определение объема ОЗУ в программе > >> Требуется программно собрать информацию следующего плана: объемы > >> физической и виртуальной памяти, степень их занятости, сколько > >> физической памяти приходится на файловые кеши, сколько физической памяти > >> приходится на загруженные shared libraries. Я вот так делал в общих чертах, идею из top стащил : maxmem = sysconf(_SC_PHYS_PAGES); page_size = sysconf(_SC_PAGE_SIZE); l_maxmem = maxmem; l_page_size = page_size; ... if(l_kd == NULL) { struct nlist nlst[1] = { { "freemem" } }; l_kd = kvm_open (NULL, NULL, NULL, O_RDONLY, NULL); if(l_kd == NULL) { ndmlogLog(LOG_SYS_ERROR, "kvm_open()"); ret = ERROR; } else if (kvm_nlist (l_kd, nlst) < 0) { ndmlogLog(LOG_SYS_ERROR, "kvm_nlist()"); ret = ERROR; } else { l_freemem_offset = nlst[0].n_value; } } if(l_kd) { (void)kvm_read(l_kd, l_freemem_offset, (void *)&freemem, sizeof(freemem)); } *kb_used = (l_maxmem - freemem) * l_page_size / 1024; Т..е. читаем /dev/kmem, если мне не изменяет склероз. А по хорошему, наверно, man kstat. -- Всего, Е.Эксаревский

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру