LINUX.ORG.RU

Physical memory size from sysinfo?


0

0

Мне нужно программно узнать количество физической памяти. Нашел в статьях что для этого нужно использовать sysinfo. Попробовал, она мне вернула указатель на структуру, где totalram = 1010 (если перевести в Mb). У меня реально стоит 1G, т.е. должно быть 1024. Где еще 14? Или totalram - это не количество всей физической памяти? Как тогда по-другому получить нужное мне число?

Вполне нормально: cat /proc/meminfo MemTotal: 515456 kB (2 планки по 256М = 503М) Bios показывает то же самое. Просто на самом деле объем планки памяти чуть меньше указанной величины.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Да, наверное так и есть: формально - 1024Mb, реально - меньше. Смущает только то, что другие оси выдают красивое число (мож округляют?). Надо будет в биосе посмотреть.

Rarruga
() автор топика
Ответ на: комментарий от Rarruga

что написано в dmesg ?
уменя на 256 мегабайтной машинке есть такая строка:
Memory: 256036k/262132k available (1472k kernel code, 5712k reserved, 567k data, 128k init, 0k highmem)

т.е. физически памяти 256, а free "врет"

anonymous
()

Если не веришь никому и переносимость побоку - читай прямо с spd планок памяти :) Модуль eeprom в ядре, содержимое отобразится в
/sys/bus/i2c/drivers/eeprom/

расшифровку можешь найти в JEDEC Standard, примеры - помоему в lm_sensors на perl есть скрипт.

koTuk
()
Ответ на: комментарий от anonymous

Точно, в dmesg у меня вот что: Memory: 1027724k/1047360k available (1786k kernel code, 18880k reserved, 714k data, 248k init, 129856k highmem)

Т.е., если перевести в Mb, то всего 1022.8125Mb. А free, так же как и meminfo выдает 1010 Mb.

Rarruga
() автор топика
Ответ на: комментарий от koTuk

> Скрипт из lm_sesors называется decode-dimms.pl

Спасибо, гляну. А переносимость побоку. Все равно у меня в этом месте стоит #if OS==LINUX

Rarruga
() автор топика
Ответ на: комментарий от Rarruga

> Все равно у меня в этом месте стоит #if OS==LINUX

Этого мало. Оно от версии к версии ядра меняется.

Твой код через пару лет работать не будет.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

> Этого мало. Оно от версии к версии ядра меняется.

> Твой код через пару лет работать не будет.

Мда... ну тогда буду использовать sysinfo и не жужжать. :)

Rarruga
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.