С++: Получение информации о состоянии памяти

В этой статье хотелось бы поговорить о создании простой программы, отражающей состояние памяти компьютера, ее распределение, если говорить более конкретно.

Начнем с того, что разобьем доступную нам память на три категории — физическая память, виртуальная память и файл подкачки. Для тех, кто сталкивается впервые с понятием файла подкачки, поясним — это специальный файл, который является как бы продолжением или дополнением оперативной памяти вашего компьютера.

Файл этот использует для своей работы память жесткого диска компьютера, начиная работу, когда оперативной памяти компьютеру не хватает для действий.

По сравнению в оперативной памятью, доступ и чтение памяти жестких дисков происходит гораздо медленнее. Например, если запустить несколько программ, активно использующих вашу оперативную память, часть из них, с меньшим приоритетом, будет «отдана» файлу подкачки.

При обращении же к такой программе, она снова «передается» к оперативной памяти для ускорения работы.

Для написания программы будем пользоваться C++ Builder 6.0. Чтобы получить доступ к памяти компьютера для сбора информации, воспользуемся следующим кодом:

MEMORYSTATUS theStatus;
ZeroMemory(&theStatus,sizeof(theStatus));
theStatus.dwLength = sizeof(theStatus);
GlobalMemoryStatus(&theStatus);

После чего в созданной переменной theStatus будет содержаться необходимая нам информация. Для удобоваримого ее отображения создадим на форме три диаграммы TChart. После чего необходимо лишь записать нужную нам информацию в эти диаграммы. Приведем полный листинг программы:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MEMORYSTATUS theStatus;
ZeroMemory(&theStatus,sizeof(theStatus));
theStatus.dwLength = sizeof(theStatus);
GlobalMemoryStatus(&theStatus);
Series1->Add(theStatus.dwTotalPhys-theStatus.dwAvailPhys,"Занято физ.памяти",clRed);
Series1->Add(theStatus.dwAvailPhys,"Свободно физ.памяти",clGreen);
Series2->Add(theStatus.dwTotalVirtual-theStatus.dwAvailVirtual,"Занято вирт.памяти",clRed);
Series2->Add(theStatus.dwAvailVirtual,"Свободно вирт.памяти",clGreen);
Series3->Add(theStatus.dwTotalPageFile-theStatus.dwAvailPageFile,"Занято пространства в файле подкачки",clRed);
Series3->Add(theStatus.dwAvailPageFile,"Свободно пространства в файле подкачки",clGreen);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

Кнопка Button3 в данном случае служит лишь для закрытия приложения. Удачи!

2 комментария

ArthurvaM
Выберите Колье серебряное 4382564б1 с доставкой по всей России в разделе Серебряные колье
У нас Вы найдете лучший текстиль, производимый в нашей стране на фабриках города Иваново. Наши основные отличия от конкурентов:
Большой ассортимент — все виды постельного белья и трикотажа — женского, детского, мужского;
Высочайшее качество российского производителя;
Доступные цены;
Разнообразные способы доставки по всей территории РФ;
Сертификация всей продукции.
Но, всё-таки, главной причиной для того, чтобы купить текстиль именно в нашем интернет-магазине, является максимальная прозрачность работы над заказом на всех этапах.
На сайте Вы всегда без труда можете узнать текущий этап работы, а операторы нашей бесплатной горячей телефонной линии, которые работают без выходных, готовы Вас проконсультировать по любому вопросу.
bit.ly/2Hq81g0 — Купить в интернет-магазине Юбка женская Анна за 469 руб.
ABiomicrima
Я создана только для тебя. ослабления эрекции предотвротить быстрою эрекцию www.test.inecostroy.ru/blogs/313662831/eroston-zakazat-so-skidkoy-i-ego-tsena.php бизнес эрекция. Однако напали почему-то именно на меня. лечение потенции в 17 летможет химия по спорту влиять на потенциюмедицинские препaрaты для потенции мужчин.
Сиверн" бросив на Тирля злобный взгляд, вскочил и вышел вон из палатки. неожиданная эрекция на видеолекарство от улучшении эрекциикак увеличить потенцию при рс. Тень заботы приняла за любовь. неприятные ощущение в стволе члена в урертре при эрекциина какой стадии простатита слабеет потенцияможет ли при пониженном давлении снижаться эрекция. Мне кажется, что вам пора возвращаться в Лондон и ждать, когда ваша племянница сама к вам заявится. чеснок с кислым молоком и потенцияпри мытье пениса происходит эрекциябразильские травы для лечения импотенции. Но ему следует быть настороже, иначе он до безумия влюбится в свою жену, превратится в такого же опьяненного любовью мужа, как его братец Морган. утренние эрекции пропадают как только я просыпаюсьшиповник лечение импотенциилечение простатита + и потенции. Сегодня в Нью-Йорке. нарушение эрекциикакой препорат или трову купить для быстрой эрекциилекарственных трав для лечении импотенции-половые бессилие. Я велю дворецкому заткнуть уши ватой и притвориться глухим, насмешливо пробормотал Джордан, и прикажу лакеям надеть шоры. диск потенция на 100 код для дисканестабильная эрекция мужчины 40 леттрава чабрец и эрекция.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.