From 45219b61ea6af93680f80e75f291dd212c552c29 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Fri, 4 Apr 2008 23:40:09 +0000 Subject: [PATCH] Modify ProcessController's System Resources and Caches item: it now shows cache and total committed mem respectively. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24801 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../KernelMemoryBarMenuItem.cpp | 29 ++++++++----------- .../KernelMemoryBarMenuItem.h | 8 ++--- src/apps/processcontroller/MemoryBarMenu.cpp | 9 +++--- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp b/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp index 60b800d910..941002b735 100644 --- a/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp +++ b/src/apps/processcontroller/KernelMemoryBarMenuItem.cpp @@ -30,12 +30,12 @@ KernelMemoryBarMenuItem::KernelMemoryBarMenuItem(system_info& systemInfo) : BMenuItem("System Resources & Caches...", NULL) { - fTotalWriteMemory = -1; fLastSum = -1; fGrenze1 = -1; fGrenze2 = -1; - fPhsysicalMemory = float(int(systemInfo.max_pages * B_PAGE_SIZE / 1024)); - fCommitedMemory = float(int(systemInfo.used_pages * B_PAGE_SIZE / 1024)); + fPhysicalMemory = float(int(systemInfo.max_pages * B_PAGE_SIZE / 1024)); + fCommittedMemory = float(int(systemInfo.used_pages * B_PAGE_SIZE / 1024)); + fCachedMemory = float(int(systemInfo.cached_pages * B_PAGE_SIZE / 1024)); } @@ -49,14 +49,11 @@ KernelMemoryBarMenuItem::DrawContent() void -KernelMemoryBarMenuItem::UpdateSituation(float commitedMemory, - float totalWriteMemory) +KernelMemoryBarMenuItem::UpdateSituation(float committedMemory, + float cachedMemory) { - if (commitedMemory < totalWriteMemory) - totalWriteMemory = commitedMemory; - - fCommitedMemory = commitedMemory; - fTotalWriteMemory = totalWriteMemory; + fCommittedMemory = committedMemory; + fCachedMemory = cachedMemory; DrawBar(false); } @@ -71,8 +68,6 @@ KernelMemoryBarMenuItem::DrawBar(bool force) // draw the bar itself BRect cadre (frame.right - kMargin - kBarWidth, frame.top + 5, frame.right - kMargin, frame.top + 13); - if (fTotalWriteMemory < 0) - return; if (fLastSum < 0) force = true; @@ -86,8 +81,8 @@ KernelMemoryBarMenuItem::DrawBar(bool force) cadre.InsetBy(1, 1); BRect r = cadre; - float grenze1 = cadre.left + (cadre.right - cadre.left) * fTotalWriteMemory / fPhsysicalMemory; - float grenze2 = cadre.left + (cadre.right - cadre.left) * fCommitedMemory / fPhsysicalMemory; + float grenze1 = cadre.left + (cadre.right - cadre.left) * fCachedMemory / fPhysicalMemory; + float grenze2 = cadre.left + (cadre.right - cadre.left) * fCommittedMemory / fPhysicalMemory; if (grenze1 > cadre.right) grenze1 = cadre.right; if (grenze2 > cadre.right) @@ -135,7 +130,7 @@ KernelMemoryBarMenuItem::DrawBar(bool force) fGrenze2 = grenze2; // draw the value - double sum = fTotalWriteMemory * FLT_MAX + fCommitedMemory; + double sum = fCachedMemory * FLT_MAX + fCommittedMemory; if (force || sum != fLastSum) { if (selected) { menu->SetLowColor(gMenuBackColorSelected); @@ -150,11 +145,11 @@ KernelMemoryBarMenuItem::DrawBar(bool force) menu->SetHighColor(kBlack); char infos[128]; - sprintf(infos, "%.1f MB", fTotalWriteMemory / 1024.f); + sprintf(infos, "%.1f MB", fCachedMemory / 1024.f); BPoint loc(cadre.left - kMargin - gMemoryTextWidth / 2 - menu->StringWidth(infos), cadre.bottom + 1); menu->DrawString(infos, loc); - sprintf(infos, "%.1f MB", fCommitedMemory / 1024.f); + sprintf(infos, "%.1f MB", fCommittedMemory / 1024.f); loc.x = cadre.left - kMargin - menu->StringWidth(infos); menu->DrawString(infos, loc); fLastSum = sum; diff --git a/src/apps/processcontroller/KernelMemoryBarMenuItem.h b/src/apps/processcontroller/KernelMemoryBarMenuItem.h index 750bf2bdfd..a6705a1a3c 100644 --- a/src/apps/processcontroller/KernelMemoryBarMenuItem.h +++ b/src/apps/processcontroller/KernelMemoryBarMenuItem.h @@ -30,12 +30,12 @@ class KernelMemoryBarMenuItem : public BMenuItem { virtual void GetContentSize(float* _width, float* _height); void DrawBar(bool force); - void UpdateSituation(float commitedMemory, float totalWriteMemory); + void UpdateSituation(float committedMemory, float fCachedMemory); private: - float fTotalWriteMemory; - float fPhsysicalMemory; - float fCommitedMemory; + float fCachedMemory; + float fPhysicalMemory; + float fCommittedMemory; double fLastSum; float fGrenze1; float fGrenze2; diff --git a/src/apps/processcontroller/MemoryBarMenu.cpp b/src/apps/processcontroller/MemoryBarMenu.cpp index 1b71436585..f0a710b784 100644 --- a/src/apps/processcontroller/MemoryBarMenu.cpp +++ b/src/apps/processcontroller/MemoryBarMenu.cpp @@ -86,7 +86,8 @@ MemoryBarMenu::Pulse() { system_info sinfo; get_system_info(&sinfo); - int commitedMemory = int(sinfo.used_pages * B_PAGE_SIZE / 1024); + int committedMemory = int(sinfo.used_pages * B_PAGE_SIZE / 1024); + int cachedMemory = int(sinfo.cached_pages * B_PAGE_SIZE / 1024); Window()->BeginViewTransaction(); // create the list of items to remove, for their team is gone. Update the old teams. @@ -96,7 +97,7 @@ MemoryBarMenu::Pulse() MemoryBarMenuItem* item; int total = 0; for (k = 1; (item = (MemoryBarMenuItem*)ItemAt(k)) != NULL; k++) { - int m = item->UpdateSituation(commitedMemory); + int m = item->UpdateSituation(committedMemory); if (m < 0) { if (lastRecycle == fRecycleCount) { fRecycleCount += EXTRA; @@ -157,7 +158,7 @@ MemoryBarMenu::Pulse() infos.team_info.team, infos.team_icon, true, NULL)); } - int m = item->UpdateSituation(commitedMemory); + int m = item->UpdateSituation(committedMemory); if (m >= 0) { total += m; item = NULL; @@ -181,7 +182,7 @@ MemoryBarMenu::Pulse() fLastTotalTime = system_time(); KernelMemoryBarMenuItem *kernelItem; if ((kernelItem = (KernelMemoryBarMenuItem*)ItemAt(0)) != NULL) - kernelItem->UpdateSituation(commitedMemory, total); + kernelItem->UpdateSituation(committedMemory, cachedMemory); Window()->EndViewTransaction(); Window()->Flush();