Як дізнатися розмір фізичної пам’яті системи

Функції API, що дозволяють отримати розмір фізичної пам'яті (RAM) істотно розрізняються між Windows, Linux, OSX, AIX, BSD, Solaris і іншими операційними системами. У даній статті ми спробували написати крос-платформену функцію, що дозволяє отримати розмір фізичний пам'яті системи.

Як отримати розмір фізичної пам'яті

Фізична пам'ять - це той обсяг пам'яті, яким системі має насправді (на відміну від пам'яті віртуальної). Розмір вільної фізичної пам'яті задає той верхня межа при виділенні доплнітельной пам'яті процесом, досягаючи якого, він буде вивантажено на диск. На практиці деяка частина фізичної пам'яті постійно виділена під ядро ​​і інші сервіси, які повинні залишитися в пам'яті резидентно. Інша частина фізичної пам'яті знаходиться під управлінням операційної системи і розподіляється між усіма запущеними процесами. Жоден один призначений для користувача процес ніколи не зможе отримати всю фізичну пам'ять.
Кожна ОС має консольні або GUI-інструменти для отримання інформації про розмір фізичної пам'яті, але перед нами стоїть завдання отримання цієї інформації програмним шляхом. На жаль, функції API, що дозволяють отримати розмір фізичної пам'яті не стандартизовані і сильно відрізняються в різних ОС.

Власне мова піде про функції getMemorySize (). Представлена ​​працює для більшості операційних систем (ви можете просто скопіювати код, або завантажити getMemorySize.c). Підключати будь-які додаткові бібліотеки не потрібно.