]> git.itanic.dy.fi Git - scan-pagemap/commitdiff
Analyzer: Print USS
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Fri, 3 Sep 2010 17:37:49 +0000 (20:37 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Fri, 3 Sep 2010 17:58:36 +0000 (20:58 +0300)
Print the Unique Set Size columnt for each process.

Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
analyze.c
pagemap.h

index 163b001e26f8f81578ed1bdb8cbed6f0308ea0ea..7ce8a0a24e7f24f8399ec6d373b386b4b42f2d68 100644 (file)
--- a/analyze.c
+++ b/analyze.c
@@ -196,7 +196,7 @@ void print_pid_stats(struct pageframe *pf, struct process *process_list,
 {
        struct analyze_frames af;
        struct process *ps;
-       long int swapped, present, total;
+       long int swapped, present, unique, total;
        long int biggest = 0, second_biggest;
        int count, processes = 0;
 
@@ -212,10 +212,11 @@ void print_pid_stats(struct pageframe *pf, struct process *process_list,
                bintree_walk(&pf->tree, &af.ops);
                ps->pages_present = af.pages_present;
                ps->pages_swapped = af.pages_swapped;
+               ps->pages_unique  = af.pages_unique;
                biggest = MAX(biggest, ps->pages_present + ps->pages_swapped);
        }
 
-       printf("     RSS  swapped    total   pid");
+       printf("     RSS  swapped      USS    total   pid");
        if (opts->with_threads)
                printf("   tid");
        printf("   name\n");
@@ -227,6 +228,7 @@ restart:
 
                present = ps->pages_present;
                swapped = ps->pages_swapped;
+               unique = ps->pages_unique;
                total = present + swapped;
 
                second_biggest = (total < biggest) &&
@@ -239,9 +241,10 @@ restart:
                if (total == 0)
                        continue;
 
-               printf("%5lld %sB %5lld %sB %5lld %sB %5d ",
+               printf("%5lld %sB %5lld %sB %5lld %sB %5lld %sB %5d ",
                        PAGE_TO_NICE(present), PAGE_TO_NICE_UNIT(present),
                        PAGE_TO_NICE(swapped), PAGE_TO_NICE_UNIT(swapped),
+                       PAGE_TO_NICE(unique), PAGE_TO_NICE_UNIT(unique),
                        PAGE_TO_NICE(total), PAGE_TO_NICE_UNIT(total),
                        ps->pid);
 
index 34c5d9483715c9dd2e6a64ce07ef34b8b7d9fd0f..130c30775a16d4e7647cdc15a2478d6708833ad0 100644 (file)
--- a/pagemap.h
+++ b/pagemap.h
@@ -150,6 +150,7 @@ struct process {
 
        long int pages_present;
        long int pages_swapped;
+       long int pages_unique;
 
        int is_initial_pid;
 };