Display memory values < 1 MiB

Fixed the MB “typo” and show values for memory in KiB or B if needed.
The threshold for displaying KiB (< 4 MiB) or B (< 9 KiB) are based on
impulse.
This commit is contained in:
Mike Massonnet
2010-05-10 17:57:51 +02:00
parent 9a6cdd2ff3
commit 7239d4bbb0

View File

@@ -135,14 +135,35 @@ model_add_task (GtkTreeModel *model, Task *task)
model_update_tree_iter (model, &iter, task); model_update_tree_iter (model, &iter, task);
} }
static void
memory_human_size (guint64 mem, gchar *mem_str)
{
guint64 mem_tmp;
mem_tmp = mem / 1024 / 1024;
if (mem_tmp > 3)
{
g_snprintf (mem_str, 64, _("%lu MiB"), mem_tmp);
return;
}
mem_tmp = mem / 1024;
if (mem_tmp > 8)
{
g_snprintf (mem_str, 64, _("%lu KiB"), mem_tmp);
return;
}
g_snprintf (mem_str, 64, _("%lu B"), mem);
}
static void static void
model_update_tree_iter (GtkTreeModel *model, GtkTreeIter *iter, Task *task) model_update_tree_iter (GtkTreeModel *model, GtkTreeIter *iter, Task *task)
{ {
gchar vsz[64], rss[64], cpu[16]; gchar vsz[64], rss[64], cpu[16];
// TODO show values < 1 MB in KB or B memory_human_size (task->vsz, vsz);
g_snprintf (vsz, 64, _("%lu MB"), task->vsz / 1024 / 1024); memory_human_size (task->rss, rss);
g_snprintf (rss, 64, _("%lu MB"), task->rss / 1024 / 1024);
// TODO make precision optional // TODO make precision optional
g_snprintf (cpu, 16, _("%.2f%%"), task->cpu_user + task->cpu_system); g_snprintf (cpu, 16, _("%.2f%%"), task->cpu_user + task->cpu_system);