|
From: Philippe W. <phi...@sk...> - 2008-09-25 18:57:30
|
I have finished a first version of a massif client request to take user snapshot + incremental representation.
E.g. after a user request such as:
....
MASSIF_TAKE_USER_SNAPSHOT("after malloc 2000 in f");
...
MASSIF_TAKE_USER_SNAPSHOT("after call to g()");
....
we obtain: the below (with +xxxx or -xxxx indicating increase/decrease compared to previous snapshot):
#-----------
snapshot=1 after malloc 2000 in f
#-----------
time=119431 +55
mem_heap_B=12000 +2000
mem_heap_extra_B=88 +8
mem_stacks_B=0 +0
heap_tree=detailed
n2: 12000 +2000 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
n0: 10000 +0 0x80484C8: main (user_snapshot.c:22)
n1: 2000 +2000 0x8048449: f (user_snapshot.c:11)
n0: 2000 +2000 0x8048524: main (user_snapshot.c:26)
#-----------
snapshot=2 after call to g()
#-----------
time=119534 +103
mem_heap_B=20000 +8000
mem_heap_extra_B=104 +16
mem_stacks_B=0 +0
heap_tree=detailed
n3: 20000 +8000 (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
n0: 10000 +0 0x80484C8: main (user_snapshot.c:22)
n2: 8000 +8000 0x8048435: g (user_snapshot.c:6)
n1: 4000 +4000 0x8048498: f (user_snapshot.c:13)
n0: 4000 +4000 0x8048524: main (user_snapshot.c:26)
n0: 4000 +4000 0x8048529: main (user_snapshot.c:28)
n1: 2000 +0 0x8048449: f (user_snapshot.c:11)
n0: 2000 +0 0x8048524: main (user_snapshot.c:26)
Where each snapshot shows the increment compared to the previous snapshot
(so the delta is always computed compared to the previous user snapshot)
Question:
Should we rather have two different user requests i.e.
MASSIF_TAKE_USER_SNAPSHOT_INCREMENTAL
MASSIF_TAKE_USER_SNAPSHOT_REFERENCE
(where _REFERENCE would produce an incremental snapshot as usual, but later on be a
"stable" reference for the following INCREMENTAL snapshots ?)
Or is MASSIF_TAKE_USER_SNAPSHOT enough ?
Philippe
|