Вычисление памяти, занимаемой программой в Windows

В просторах сети много советов использовать GetProcessMemoryInfo из psapi.h. Я сделал работающий пример на Qt5/C++, вот часть кода:

void Dialog::PrintMemoryInfo() {
  HANDLE hProcess = GetCurrentProcess();
  PROCESS_MEMORY_COUNTERS_EX pmce;
  if (hProcess) {
    if (GetProcessMemoryInfo(hProcess, (PROCESS_MEMORY_COUNTERS *)&pmce, sizeof(pmce))) {
      qDebug() << "PageFaultCount:" << pmce.PageFaultCount;
      qDebug() << "PeakWorkingSetSize:" << pmce.PeakWorkingSetSize;
      qDebug() << "WorkingSetSize:" << pmce.WorkingSetSize;
      qDebug() << "QuotaPeakPagedPoolUsage:" << pmce.QuotaPeakPagedPoolUsage;
      qDebug() << "QuotaPagedPoolUsage:" << pmce.QuotaPagedPoolUsage;
      qDebug() << "QuotaPeakNonPagedPoolUsage:" << pmce.QuotaPeakNonPagedPoolUsage;
      qDebug() << "QuotaNonPagedPoolUsage:" << pmce.QuotaNonPagedPoolUsage;
      qDebug() << "PagefileUsage:" << pmce.PagefileUsage;
      qDebug() << "PeakPagefileUsage:" << pmce.PeakPagefileUsage;
      qDebug() << "PrivateUsage:" << pmce.PrivateUsage;
    }
  }
}

Получаю вот такой вывод:

PageFaultCount: 14558
PeakWorkingSetSize: 35176448
WorkingSetSize: 24408064
QuotaPeakPagedPoolUsage: 224408
QuotaPagedPoolUsage: 222664
QuotaPeakNonPagedPoolUsage: 17784
QuotaNonPagedPoolUsage: 17648
PagefileUsage: 17682432
PeakPagefileUsage: 17682432
PrivateUsage: 17682432

А в "Диспетчере Задач" вижу совсем другую цифру: 7.6MБ

Вопрос: как мне программно получить эти 7.6MБ?


Ответы (0 шт):