From d7933cbc28f4f094eba3d128bc147920f68c965b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Sinan=20A=C4=9Facan?= Date: Wed, 8 Jun 2016 09:30:32 -0400 Subject: [PATCH] Show sources of cost centers in .prof This fixes the problem with duplicate cost-centre names that was reported a couple of times before. When a module implements a typeclass multiple times for different types, methods of different implementations get same cost-centre names and are reported like this: COST CENTRE MODULE %time %alloc CAF GHC.IO.Handle.FD 0.0 32.8 CAF GHC.Read 0.0 1.0 CAF GHC.IO.Encoding 0.0 1.8 showsPrec Main 0.0 1.2 readPrec Main 0.0 19.4 readPrec Main 0.0 20.5 main Main 0.0 20.2 individual inherited COST CENTRE MODULE no. entries %time %alloc %time %alloc MAIN MAIN 53 0 0.0 0.2 0.0 100.0 CAF Main 105 0 0.0 0.3 0.0 62.5 readPrec Main 109 1 0.0 0.6 0.0 0.6 readPrec Main 107 1 0.0 0.6 0.0 0.6 main Main 106 1 0.0 20.2 0.0 61.0 == Main 114 1 0.0 0.0 0.0 0.0 == Main 113 1 0.0 0.0 0.0 0.0 showsPrec Main 112 2 0.0 1.2 0.0 1.2 showsPrec Main 111 2 0.0 0.9 0.0 0.9 readPrec Main 110 0 0.0 18.8 0.0 18.8 readPrec Main 108 0 0.0 19.9 0.0 19.9 It's not possible to tell from the report which `==` took how long. This patch adds one more column at the cost of making outputs wider. The report now looks like this: COST CENTRE MODULE SRC %time %alloc CAF GHC.IO.Handle.FD 0.0 32.9 CAF GHC.IO.Encoding 0.0 1.8 CAF GHC.Read 0.0 1.0 showsPrec Main Main_1.hs:7:19-22 0.0 1.2 readPrec Main Main_1.hs:7:13-16 0.0 19.5 readPrec Main Main_1.hs:4:13-16 0.0 20.5 main Main Main_1.hs:(10,1)-(20,20) 0.0 20.2 individual inherited COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc MAIN MAIN 53 0 0.0 0.2 0.0 100.0 CAF Main 105 0 0.0 0.3 0.0 62.5 readPrec Main Main_1.hs:7:13-16 109 1 0.0 0.6 0.0 0.6 readPrec Main Main_1.hs:4:13-16 107 1 0.0 0.6 0.0 0.6 main Main Main_1.hs:(10,1)-(20,20) 106 1 0.0 20.2 0.0 61.0 == Main Main_1.hs:7:25-26 114 1 0.0 0.0 0.0 0.0 == Main Main_1.hs:4:25-26 113 1 0.0 0.0 0.0 0.0 showsPrec Main Main_1.hs:7:19-22 112 2 0.0 1.2 0.0 1.2 showsPrec Main Main_1.hs:4:19-22 111 2 0.0 0.9 0.0 0.9 readPrec Main Main_1.hs:7:13-16 110 0 0.0 18.8 0.0 18.8 readPrec Main Main_1.hs:4:13-16 108 0 0.0 19.9 0.0 19.9 CAF Text.Read.Lex 102 0 0.0 0.5 0.0 0.5 To fix failing test cases because of different orderings of cost centres (e.g. optimized and non-optimized build printing in different order), with this patch we also start sorting cost centres before printing. The order depends on 1) entries (more entered cost centres come first) 2) names (using strcmp() on cost centre names). Reviewers: simonmar, austin, erikd, bgamari Reviewed By: simonmar, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2282 GHC Trac Issues: #11543, #8473, #7105 --- rts/Profiling.c | 112 +++++++++++++++--- testsuite/driver/testlib.py | 47 +++++--- .../profiling/should_run/T2552.prof.sample | 57 +++++---- .../profiling/should_run/T5559.prof.sample | 33 +++--- .../should_run/T5654b-O0.prof.sample | 40 +++---- .../should_run/T5654b-O1.prof.sample | 40 +++---- .../profiling/should_run/T680.prof.sample | 65 +++++----- testsuite/tests/profiling/should_run/all.T | 2 +- .../profiling/should_run/ioprof.prof.sample | 74 ++++++------ .../should_run/prof-doc-fib.prof.sample | 41 +++---- .../should_run/prof-doc-last.prof.sample | 54 ++++----- .../should_run/profinline001.prof.sample | 39 +++--- .../profiling/should_run/scc001.prof.sample | 48 ++++---- .../profiling/should_run/scc002.prof.sample | 45 +++---- .../profiling/should_run/scc003.prof.sample | 54 ++++----- .../profiling/should_run/scc005.prof.sample | 35 +++--- 16 files changed, 441 insertions(+), 345 deletions(-) diff --git a/rts/Profiling.c b/rts/Profiling.c index a4fc281967..ea1e9dbb2e 100644 --- a/rts/Profiling.c +++ b/rts/Profiling.c @@ -119,16 +119,19 @@ static void findCCSMaxLens ( CostCentreStack *ccs, uint32_t indent, uint32_t *max_label_len, uint32_t *max_module_len, + uint32_t *max_src_len, uint32_t *max_id_len ); static void logCCS ( CostCentreStack *ccs, uint32_t indent, uint32_t max_label_len, uint32_t max_module_len, + uint32_t max_src_len, uint32_t max_id_len ); static void reportCCS ( CostCentreStack *ccs ); static CostCentreStack * checkLoop ( CostCentreStack *ccs, CostCentre *cc ); static CostCentreStack * pruneCCSTree ( CostCentreStack *ccs ); +static void sortCCSTree ( CostCentreStack *ccs ); static CostCentreStack * actualPush ( CostCentreStack *, CostCentre * ); static CostCentreStack * isInIndexTable ( IndexTable *, CostCentre * ); static IndexTable * addToIndexTable ( IndexTable *, CostCentreStack *, @@ -764,13 +767,14 @@ static void reportPerCCCosts( void ) { CostCentre *cc, *next; - uint32_t max_label_len, max_module_len; + uint32_t max_label_len, max_module_len, max_src_len; aggregateCCCosts(CCS_MAIN); sorted_cc_list = NULL; max_label_len = 11; // no shorter than the "COST CENTRE" header max_module_len = 6; // no shorter than the "MODULE" header + max_src_len = 3; // no shorter than the "SRC" header for (cc = CC_LIST; cc != NULL; cc = next) { next = cc->link; @@ -781,10 +785,12 @@ reportPerCCCosts( void ) max_label_len = stg_max(strlen_utf8(cc->label), max_label_len); max_module_len = stg_max(strlen_utf8(cc->module), max_module_len); + max_src_len = stg_max(strlen_utf8(cc->srcloc), max_src_len); } } - fprintf(prof_file, "%-*s %-*s", max_label_len, "COST CENTRE", max_module_len, "MODULE"); + fprintf(prof_file, "%-*s %-*s %-*s", + max_label_len, "COST CENTRE", max_module_len, "MODULE", max_src_len, "SRC"); fprintf(prof_file, " %6s %6s", "%time", "%alloc"); if (RtsFlags.CcFlags.doCostCentres >= COST_CENTRES_VERBOSE) { fprintf(prof_file, " %5s %9s", "ticks", "bytes"); @@ -795,11 +801,13 @@ reportPerCCCosts( void ) if (ignoreCC(cc)) { continue; } - fprintf(prof_file, "%s%*s %s%*s", + fprintf(prof_file, "%s%*s %s%*s %s%*s", cc->label, max_label_len - strlen_utf8(cc->label), "", cc->module, - max_module_len - strlen_utf8(cc->module), ""); + max_module_len - strlen_utf8(cc->module), "", + cc->srcloc, + max_src_len - strlen_utf8(cc->srcloc), ""); fprintf(prof_file, " %6.1f %6.1f", total_prof_ticks == 0 ? 0.0 : (cc->time_ticks / (StgFloat) total_prof_ticks * 100), @@ -823,17 +831,19 @@ reportPerCCCosts( void ) static void fprintHeader( uint32_t max_label_len, uint32_t max_module_len, - uint32_t max_id_len ) + uint32_t max_src_len, uint32_t max_id_len ) { - fprintf(prof_file, "%-*s %-*s %-*s %11s %12s %12s\n", + fprintf(prof_file, "%-*s %-*s %-*s %-*s %11s %12s %12s\n", max_label_len, "", max_module_len, "", + max_src_len, "", max_id_len, "", "", "individual", "inherited"); - fprintf(prof_file, "%-*s %-*s %-*s", + fprintf(prof_file, "%-*s %-*s %-*s %-*s", max_label_len, "COST CENTRE", max_module_len, "MODULE", + max_src_len, "SRC", max_id_len, "no."); fprintf(prof_file, " %11s %5s %6s %5s %6s", @@ -890,7 +900,9 @@ reportCCSProfiling( void ) inheritCosts(CCS_MAIN); - reportCCS(pruneCCSTree(CCS_MAIN)); + CostCentreStack *stack = pruneCCSTree(CCS_MAIN); + sortCCSTree(stack); + reportCCS(stack); } static uint32_t @@ -911,7 +923,7 @@ numDigits(StgInt i) { static void findCCSMaxLens(CostCentreStack *ccs, uint32_t indent, uint32_t *max_label_len, - uint32_t *max_module_len, uint32_t *max_id_len) { + uint32_t *max_module_len, uint32_t *max_src_len, uint32_t *max_id_len) { CostCentre *cc; IndexTable *i; @@ -919,19 +931,21 @@ findCCSMaxLens(CostCentreStack *ccs, uint32_t indent, uint32_t *max_label_len, *max_label_len = stg_max(*max_label_len, indent + strlen_utf8(cc->label)); *max_module_len = stg_max(*max_module_len, strlen_utf8(cc->module)); + *max_src_len = stg_max(*max_src_len, strlen_utf8(cc->srcloc)); *max_id_len = stg_max(*max_id_len, numDigits(ccs->ccsID)); for (i = ccs->indexTable; i != 0; i = i->next) { if (!i->back_edge) { findCCSMaxLens(i->ccs, indent+1, - max_label_len, max_module_len, max_id_len); + max_label_len, max_module_len, max_src_len, max_id_len); } } } static void logCCS(CostCentreStack *ccs, uint32_t indent, - uint32_t max_label_len, uint32_t max_module_len, uint32_t max_id_len) + uint32_t max_label_len, uint32_t max_module_len, + uint32_t max_src_len, uint32_t max_id_len) { CostCentre *cc; IndexTable *i; @@ -944,12 +958,14 @@ logCCS(CostCentreStack *ccs, uint32_t indent, /* force printing of *all* cost centres if -Pa */ { - fprintf(prof_file, "%-*s%s%*s %s%*s", + fprintf(prof_file, "%*s%s%*s %s%*s %s%*s", indent, "", cc->label, max_label_len-indent - strlen_utf8(cc->label), "", cc->module, - max_module_len - strlen_utf8(cc->module), ""); + max_module_len - strlen_utf8(cc->module), "", + cc->srcloc, + max_src_len - strlen_utf8(cc->srcloc), ""); fprintf(prof_file, " %*" FMT_Int "%11" FMT_Word64 " %5.1f %5.1f %5.1f %5.1f", @@ -969,7 +985,8 @@ logCCS(CostCentreStack *ccs, uint32_t indent, for (i = ccs->indexTable; i != 0; i = i->next) { if (!i->back_edge) { - logCCS(i->ccs, indent+1, max_label_len, max_module_len, max_id_len); + logCCS(i->ccs, indent+1, + max_label_len, max_module_len, max_src_len, max_id_len); } } } @@ -977,16 +994,18 @@ logCCS(CostCentreStack *ccs, uint32_t indent, static void reportCCS(CostCentreStack *ccs) { - uint32_t max_label_len, max_module_len, max_id_len; + uint32_t max_label_len, max_module_len, max_src_len, max_id_len; max_label_len = 11; // no shorter than "COST CENTRE" header max_module_len = 6; // no shorter than "MODULE" header + max_src_len = 3; // no shorter than "SRC" header max_id_len = 3; // no shorter than "no." header - findCCSMaxLens(ccs, 0, &max_label_len, &max_module_len, &max_id_len); + findCCSMaxLens(ccs, 0, + &max_label_len, &max_module_len, &max_src_len, &max_id_len); - fprintHeader(max_label_len, max_module_len, max_id_len); - logCCS(ccs, 0, max_label_len, max_module_len, max_id_len); + fprintHeader(max_label_len, max_module_len, max_src_len, max_id_len); + logCCS(ccs, 0, max_label_len, max_module_len, max_src_len, max_id_len); } @@ -1064,6 +1083,63 @@ pruneCCSTree (CostCentreStack *ccs) } } +static IndexTable* +insertIndexTableInSortedList(IndexTable* tbl, IndexTable* sortedList) +{ + StgWord tbl_ticks = tbl->ccs->scc_count; + char* tbl_label = tbl->ccs->cc->label; + + IndexTable *prev = NULL; + IndexTable *cursor = sortedList; + + while (cursor != NULL) { + StgWord cursor_ticks = cursor->ccs->scc_count; + char* cursor_label = cursor->ccs->cc->label; + + if (tbl_ticks > cursor_ticks || + (tbl_ticks == cursor_ticks && strcmp(tbl_label, cursor_label) < 0)) { + if (prev == NULL) { + tbl->next = sortedList; + return tbl; + } else { + prev->next = tbl; + tbl->next = cursor; + return sortedList; + } + } else { + prev = cursor; + cursor = cursor->next; + } + } + + prev->next = tbl; + return sortedList; +} + +static void +sortCCSTree(CostCentreStack *ccs) +{ + if (ccs->indexTable == NULL) return; + + for (IndexTable *tbl = ccs->indexTable; tbl != NULL; tbl = tbl->next) + if (!tbl->back_edge) + sortCCSTree(tbl->ccs); + + IndexTable *sortedList = ccs->indexTable; + IndexTable *nonSortedList = sortedList->next; + sortedList->next = NULL; + + while (nonSortedList != NULL) + { + IndexTable *nonSortedTail = nonSortedList->next; + nonSortedList->next = NULL; + sortedList = insertIndexTableInSortedList(nonSortedList, sortedList); + nonSortedList = nonSortedTail; + } + + ccs->indexTable = sortedList; +} + void fprintCCS( FILE *f, CostCentreStack *ccs ) { diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index 53f342371e..fb93721ae3 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -1763,21 +1763,38 @@ def normalise_prof (str): str = re.sub('[ \t]*main[ \t]+Main.*\n','',str) # We have somthing like this: - - # MAIN MAIN 101 0 0.0 0.0 100.0 100.0 - # k Main 204 1 0.0 0.0 0.0 0.0 - # foo Main 205 1 0.0 0.0 0.0 0.0 - # foo.bar Main 207 1 0.0 0.0 0.0 0.0 - - # then we remove all the specific profiling data, leaving only the - # cost centre name, module, and entries, to end up with this: - - # MAIN MAIN 0 - # k Main 1 - # foo Main 1 - # foo.bar Main 1 - - str = re.sub('\n([ \t]*[^ \t]+)([ \t]+[^ \t]+)([ \t]+\\d+)([ \t]+\\d+)[ \t]+([\\d\\.]+)[ \t]+([\\d\\.]+)[ \t]+([\\d\\.]+)[ \t]+([\\d\\.]+)','\n\\1 \\2 \\4',str) + # + # MAIN MAIN 53 0 0.0 0.2 0.0 100.0 + # CAF Main 105 0 0.0 0.3 0.0 62.5 + # readPrec Main Main_1.hs:7:13-16 109 1 0.0 0.6 0.0 0.6 + # readPrec Main Main_1.hs:4:13-16 107 1 0.0 0.6 0.0 0.6 + # main Main Main_1.hs:(10,1)-(20,20) 106 1 0.0 20.2 0.0 61.0 + # == Main Main_1.hs:7:25-26 114 1 0.0 0.0 0.0 0.0 + # == Main Main_1.hs:4:25-26 113 1 0.0 0.0 0.0 0.0 + # showsPrec Main Main_1.hs:7:19-22 112 2 0.0 1.2 0.0 1.2 + # showsPrec Main Main_1.hs:4:19-22 111 2 0.0 0.9 0.0 0.9 + # readPrec Main Main_1.hs:7:13-16 110 0 0.0 18.8 0.0 18.8 + # readPrec Main Main_1.hs:4:13-16 108 0 0.0 19.9 0.0 19.9 + # + # then we remove all the specific profiling data, leaving only the cost + # centre name, module, src, and entries, to end up with this: (modulo + # whitespace between columns) + # + # MAIN MAIN 0 + # readPrec Main Main_1.hs:7:13-16 1 + # readPrec Main Main_1.hs:4:13-16 1 + # == Main Main_1.hs:7:25-26 1 + # == Main Main_1.hs:4:25-26 1 + # showsPrec Main Main_1.hs:7:19-22 2 + # showsPrec Main Main_1.hs:4:19-22 2 + # readPrec Main Main_1.hs:7:13-16 0 + # readPrec Main Main_1.hs:4:13-16 0 + + # Split 9 whitespace-separated groups, take columns 1 (cost-centre), 2 + # (module), 3 (src), and 5 (entries). SCC names can't have whitespace, so + # this works fine. + str = re.sub(r'\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*', + '\\1 \\2 \\3 \\5\n', str) return str def normalise_slashes_( str ): diff --git a/testsuite/tests/profiling/should_run/T2552.prof.sample b/testsuite/tests/profiling/should_run/T2552.prof.sample index 3eea44a48d..7ed927f6db 100644 --- a/testsuite/tests/profiling/should_run/T2552.prof.sample +++ b/testsuite/tests/profiling/should_run/T2552.prof.sample @@ -1,37 +1,36 @@ - Wed Jan 27 08:12 2016 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) T2552 +RTS -hc -p -RTS - total time = 0.01 secs (5 ticks @ 1000 us, 1 processor) - total alloc = 123,466,024 bytes (excludes profiling overheads) + total time = 0.09 secs (90 ticks @ 1000 us, 1 processor) + total alloc = 123,465,848 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -fib1.fib1'.nfib Main 80.0 33.3 -MAIN MAIN 20.0 0.0 -fib2'.nfib Main 0.0 33.3 -fib3'.nfib Main 0.0 33.3 +fib1.fib1'.nfib Main T2552.hs:5:9-61 37.8 33.3 +fib2'.nfib Main T2552.hs:10:5-57 31.1 33.3 +fib3'.nfib Main T2552.hs:15:5-57 31.1 33.3 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 105 0 20.0 0.0 100.0 100.0 - main Main 211 0 0.0 0.0 0.0 0.0 - CAF Main 209 0 0.0 0.0 80.0 100.0 - main Main 210 1 0.0 0.0 80.0 100.0 - fib3' Main 220 1 0.0 0.0 0.0 33.3 - fib3'.nfib Main 221 1028457 0.0 33.3 0.0 33.3 - fib3 Main 219 1 0.0 0.0 0.0 0.0 - fib2 Main 216 1 0.0 0.0 0.0 33.3 - fib2' Main 217 1 0.0 0.0 0.0 33.3 - fib2'.nfib Main 218 1028457 0.0 33.3 0.0 33.3 - fib1 Main 212 1 0.0 0.0 80.0 33.3 - fib1.fib1' Main 213 1 0.0 0.0 80.0 33.3 - nfib' Main 214 1 0.0 0.0 80.0 33.3 - fib1.fib1'.nfib Main 215 1028457 80.0 33.3 80.0 33.3 - CAF GHC.Conc.Signal 203 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 193 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 191 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 183 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.Text 181 0 0.0 0.0 0.0 0.0 +MAIN MAIN 45 0 0.0 0.0 100.0 100.0 + CAF Main 89 0 0.0 0.0 100.0 100.0 + main Main T2552.hs:(17,1)-(20,17) 90 1 0.0 0.0 100.0 100.0 + fib1 Main T2552.hs:(1,1)-(5,61) 92 1 0.0 0.0 37.8 33.3 + fib1.fib1' Main T2552.hs:(3,5)-(5,61) 93 1 0.0 0.0 37.8 33.3 + nfib' Main T2552.hs:3:35-40 94 1 0.0 0.0 37.8 33.3 + fib1.fib1'.nfib Main T2552.hs:5:9-61 95 1028457 37.8 33.3 37.8 33.3 + fib2 Main T2552.hs:7:1-16 96 1 0.0 0.0 31.1 33.3 + fib2' Main T2552.hs:(8,1)-(10,57) 97 1 0.0 0.0 31.1 33.3 + fib2'.nfib Main T2552.hs:10:5-57 98 1028457 31.1 33.3 31.1 33.3 + fib3 Main T2552.hs:12:1-12 99 1 0.0 0.0 0.0 0.0 + fib3' Main T2552.hs:(13,1)-(15,57) 100 1 0.0 0.0 31.1 33.3 + fib3'.nfib Main T2552.hs:15:5-57 101 1028457 31.1 33.3 31.1 33.3 + CAF GHC.IO.Handle.FD 84 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.Text 83 0 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 81 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding 78 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 64 0 0.0 0.0 0.0 0.0 + main Main T2552.hs:(17,1)-(20,17) 91 0 0.0 0.0 0.0 0.0 diff --git a/testsuite/tests/profiling/should_run/T5559.prof.sample b/testsuite/tests/profiling/should_run/T5559.prof.sample index 5c4b74a0fa..ac72ae5c34 100644 --- a/testsuite/tests/profiling/should_run/T5559.prof.sample +++ b/testsuite/tests/profiling/should_run/T5559.prof.sample @@ -1,25 +1,24 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Fri Jun 3 10:46 2016 Time and Allocation Profiling Report (Final) T5559 +RTS -p -RTS - total time = 0.04 secs (36 ticks @ 1000 us, 1 processor) - total alloc = 57,359,016 bytes (excludes profiling overheads) + total time = 0.04 secs (39 ticks @ 1000 us, 1 processor) + total alloc = 57,359,352 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -føb Main 97.2 99.9 -MAIN MAIN 2.8 0.0 +føb Main T5559.hs:(2,1)-(5,38) 100.0 99.9 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 99 0 2.8 0.0 100.0 100.0 - CAF Main 197 0 0.0 0.0 97.2 99.9 - main Main 198 1 0.0 0.0 97.2 99.9 - føb Main 199 392835 97.2 99.9 97.2 99.9 - CAF GHC.Conc.Signal 179 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 163 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 161 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 152 0 0.0 0.1 0.0 0.1 - CAF GHC.IO.Handle.Text 150 0 0.0 0.0 0.0 0.0 +MAIN MAIN 45 0 0.0 0.0 100.0 100.0 + CAF Main 89 0 0.0 0.0 100.0 99.9 + main Main T5559.hs:8:1-21 90 1 0.0 0.0 100.0 99.9 + føb Main T5559.hs:(2,1)-(5,38) 91 392835 100.0 99.9 100.0 99.9 + CAF GHC.Conc.Signal 80 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding 77 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.FD 75 0 0.0 0.1 0.0 0.1 + CAF GHC.IO.Handle.Text 73 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 56 0 0.0 0.0 0.0 0.0 diff --git a/testsuite/tests/profiling/should_run/T5654b-O0.prof.sample b/testsuite/tests/profiling/should_run/T5654b-O0.prof.sample index f98fcf0cbf..b803917865 100644 --- a/testsuite/tests/profiling/should_run/T5654b-O0.prof.sample +++ b/testsuite/tests/profiling/should_run/T5654b-O0.prof.sample @@ -1,29 +1,29 @@ - Wed Jan 27 08:16 2016 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) T5654b-O0 +RTS -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 39,248 bytes (excludes profiling overheads) + total alloc = 39,112 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -CAF GHC.IO.Handle.FD 0.0 88.0 -CAF GHC.IO.Encoding 0.0 7.3 -CAF GHC.Conc.Signal 0.0 1.7 +CAF GHC.IO.Handle.FD 0.0 88.2 +CAF GHC.IO.Encoding 0.0 7.1 +CAF GHC.Conc.Signal 0.0 1.7 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 105 0 0.0 0.9 0.0 100.0 - CAF Main 209 0 0.0 0.9 0.0 1.5 - g Main 212 1 0.0 0.1 0.0 0.1 - f Main 211 1 0.0 0.1 0.0 0.1 - main Main 210 1 0.0 0.2 0.0 0.4 - f Main 214 0 0.0 0.0 0.0 0.2 - g Main 215 0 0.0 0.0 0.0 0.2 - h Main 216 1 0.0 0.2 0.0 0.2 - CAF GHC.Conc.Signal 203 0 0.0 1.7 0.0 1.7 - CAF GHC.IO.Encoding 193 0 0.0 7.3 0.0 7.3 - CAF GHC.IO.Encoding.Iconv 191 0 0.0 0.6 0.0 0.6 - CAF GHC.IO.Handle.FD 183 0 0.0 88.0 0.0 88.0 +MAIN MAIN 43 0 0.0 0.9 0.0 100.0 + CAF Main 85 0 0.0 0.9 0.0 1.5 + f Main T5654b-O0.hs:12:1-7 87 1 0.0 0.1 0.0 0.1 + g Main T5654b-O0.hs:16:1-7 88 1 0.0 0.1 0.0 0.1 + main Main T5654b-O0.hs:22:1-21 86 1 0.0 0.2 0.0 0.4 + f Main T5654b-O0.hs:12:1-7 90 0 0.0 0.0 0.0 0.2 + g Main T5654b-O0.hs:16:1-7 91 0 0.0 0.0 0.0 0.2 + h Main T5654b-O0.hs:20:1-19 92 1 0.0 0.2 0.0 0.2 + CAF GHC.Conc.Signal 77 0 0.0 1.7 0.0 1.7 + CAF GHC.IO.Encoding 74 0 0.0 7.1 0.0 7.1 + CAF GHC.IO.Handle.FD 72 0 0.0 88.2 0.0 88.2 + CAF GHC.IO.Encoding.Iconv 54 0 0.0 0.6 0.0 0.6 diff --git a/testsuite/tests/profiling/should_run/T5654b-O1.prof.sample b/testsuite/tests/profiling/should_run/T5654b-O1.prof.sample index 317e492dbd..45ae0ba55c 100644 --- a/testsuite/tests/profiling/should_run/T5654b-O1.prof.sample +++ b/testsuite/tests/profiling/should_run/T5654b-O1.prof.sample @@ -1,28 +1,28 @@ - Wed Jan 27 08:16 2016 Time and Allocation Profiling Report (Final) + Fri Jun 3 11:00 2016 Time and Allocation Profiling Report (Final) - T5654b-O1 +RTS -p -RTS + T5654b-O1 +RTS -hc -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 39,016 bytes (excludes profiling overheads) + total alloc = 38,880 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -MAIN MAIN 0.0 1.7 -CAF GHC.IO.Handle.FD 0.0 88.5 -CAF GHC.IO.Encoding 0.0 7.4 -CAF GHC.Conc.Signal 0.0 1.7 +MAIN MAIN 0.0 1.7 +CAF GHC.IO.Handle.FD 0.0 88.8 +CAF GHC.IO.Encoding 0.0 7.1 +CAF GHC.Conc.Signal 0.0 1.7 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 105 0 0.0 1.7 0.0 100.0 - CAF Main 209 0 0.0 0.0 0.0 0.1 - main Main 210 1 0.0 0.1 0.0 0.1 - f Main 211 1 0.0 0.0 0.0 0.0 - g Main 212 1 0.0 0.0 0.0 0.0 - h Main 213 1 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 203 0 0.0 1.7 0.0 1.7 - CAF GHC.IO.Encoding 193 0 0.0 7.4 0.0 7.4 - CAF GHC.IO.Encoding.Iconv 191 0 0.0 0.6 0.0 0.6 - CAF GHC.IO.Handle.FD 183 0 0.0 88.5 0.0 88.5 +MAIN MAIN 43 0 0.0 1.7 0.0 100.0 + CAF Main 85 0 0.0 0.0 0.0 0.1 + main Main T5654b-O1.hs:22:1-21 86 1 0.0 0.1 0.0 0.1 + f Main T5654b-O1.hs:12:1-7 87 1 0.0 0.0 0.0 0.0 + g Main T5654b-O1.hs:16:1-7 88 1 0.0 0.0 0.0 0.0 + h Main T5654b-O1.hs:20:1-19 89 1 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 79 0 0.0 1.7 0.0 1.7 + CAF GHC.IO.Encoding 74 0 0.0 7.1 0.0 7.1 + CAF GHC.IO.Handle.FD 72 0 0.0 88.8 0.0 88.8 + CAF GHC.IO.Encoding.Iconv 53 0 0.0 0.6 0.0 0.6 diff --git a/testsuite/tests/profiling/should_run/T680.prof.sample b/testsuite/tests/profiling/should_run/T680.prof.sample index 6b2d037627..d14bad9bdd 100644 --- a/testsuite/tests/profiling/should_run/T680.prof.sample +++ b/testsuite/tests/profiling/should_run/T680.prof.sample @@ -1,37 +1,42 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) - T680 +RTS -p -RTS + T680 +RTS -hc -p -RTS - total time = 0.20 secs (203 ticks @ 1000 us, 1 processor) - total alloc = 449,665,336 bytes (excludes profiling overheads) + total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) + total alloc = 752,952 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -foo.\ Main 100.0 99.8 +CAF GHC.IO.Handle.FD 0.0 4.6 +main Main T680.hs:20:1-14 0.0 1.2 +foo.\ Main T680.hs:3:12-40 0.0 25.5 +foo.bar Main T680.hs:(5,3)-(9,38) 0.0 29.8 +foo.bar.\ Main T680.hs:(8,11)-(9,38) 0.0 38.2 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 103 0 0.0 0.0 100.0 100.0 - CAF Main 205 0 0.0 0.0 100.0 100.0 - k Main 208 1 0.0 0.0 0.0 0.0 - foo Main 209 1 0.0 0.0 0.0 0.0 - foo.bar Main 213 1 0.0 0.0 0.0 0.0 - foo.bar.k' Main 217 1 0.0 0.0 0.0 0.0 - k.\ Main 218 1 0.0 0.0 0.0 0.0 - r Main 207 1 0.0 0.0 100.0 100.0 - k Main 210 0 0.0 0.0 100.0 100.0 - foo Main 211 0 0.0 0.0 100.0 100.0 - foo.bar Main 214 0 0.0 0.0 0.0 0.1 - foo.bar.k' Main 219 0 0.0 0.0 0.0 0.0 - foo.bar.\ Main 215 4001 0.0 0.1 0.0 0.1 - foo.bar.\.k'' Main 216 4000 0.0 0.0 0.0 0.0 - foo.\ Main 212 4001 100.0 99.8 100.0 99.8 - main Main 206 1 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 184 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 167 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 165 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 156 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.Text 154 0 0.0 0.0 0.0 0.0 - CAF GHC.Show 141 0 0.0 0.0 0.0 0.0 +MAIN MAIN 46 0 0.0 0.1 0.0 100.0 + CAF Main 91 0 0.0 0.0 0.0 93.6 + k Main T680.hs:12:1-17 95 1 0.0 0.0 0.0 0.0 + foo Main T680.hs:(2,1)-(9,38) 96 1 0.0 0.0 0.0 0.0 + foo.bar Main T680.hs:(5,3)-(9,38) 100 1 0.0 0.0 0.0 0.0 + foo.bar.k' Main T680.hs:6:9-34 104 1 0.0 0.0 0.0 0.0 + k.\ Main T680.hs:12:16 105 1 0.0 0.0 0.0 0.0 + main Main T680.hs:20:1-14 92 1 0.0 0.0 0.0 0.0 + r Main T680.hs:18:1-26 94 1 0.0 0.0 0.0 93.5 + k Main T680.hs:12:1-17 97 0 0.0 0.0 0.0 93.5 + foo Main T680.hs:(2,1)-(9,38) 98 0 0.0 0.0 0.0 93.5 + foo.\ Main T680.hs:3:12-40 99 4001 0.0 25.5 0.0 25.5 + foo.bar Main T680.hs:(5,3)-(9,38) 101 0 0.0 29.8 0.0 68.0 + foo.bar.\ Main T680.hs:(8,11)-(9,38) 102 4001 0.0 38.2 0.0 38.2 + foo.bar.\.k'' Main T680.hs:8:15-27 103 4000 0.0 0.0 0.0 0.0 + foo.bar.k' Main T680.hs:6:9-34 106 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.FD 84 0 0.0 4.6 0.0 4.6 + CAF GHC.IO.Handle.Text 83 0 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 80 0 0.0 0.1 0.0 0.1 + CAF GHC.IO.Encoding 78 0 0.0 0.4 0.0 0.4 + CAF GHC.Show 76 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 62 0 0.0 0.0 0.0 0.0 + main Main T680.hs:20:1-14 93 0 0.0 1.2 0.0 1.2 diff --git a/testsuite/tests/profiling/should_run/all.T b/testsuite/tests/profiling/should_run/all.T index a12a0432ac..f3ea9b160c 100644 --- a/testsuite/tests/profiling/should_run/all.T +++ b/testsuite/tests/profiling/should_run/all.T @@ -39,7 +39,7 @@ test('T3001-2', [only_ways(['prof_hb']), extra_ways(['prof_hb'])], # As with ioprof001, the unoptimised profile is different but # not badly wrong (CAF attribution is different). -test('scc001', [expect_broken_for_10037], compile_and_run, +test('scc001', [], compile_and_run, ['-fno-state-hack -fno-full-laziness']) # Note [consistent stacks] test('scc002', [], compile_and_run, ['']) diff --git a/testsuite/tests/profiling/should_run/ioprof.prof.sample b/testsuite/tests/profiling/should_run/ioprof.prof.sample index 98f48fdadc..52ab8ba4d2 100644 --- a/testsuite/tests/profiling/should_run/ioprof.prof.sample +++ b/testsuite/tests/profiling/should_run/ioprof.prof.sample @@ -1,46 +1,46 @@ - Fri Oct 30 17:14 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) ioprof +RTS -hc -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 63,680 bytes (excludes profiling overheads) + total alloc = 180,024 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -CAF GHC.IO.Handle.FD 0.0 54.2 -CAF GHC.IO.Encoding 0.0 5.2 -CAF GHC.Exception 0.0 1.2 -CAF GHC.Conc.Signal 0.0 1.0 -main Main 0.0 13.6 -errorM.\ Main 0.0 19.8 -CAF Main 0.0 2.6 +CAF GHC.IO.Encoding 0.0 1.8 +CAF GHC.IO.Handle.FD 0.0 19.2 +CAF GHC.Exception 0.0 2.5 +main Main ioprof.hs:28:1-43 0.0 4.8 +errorM.\ Main ioprof.hs:23:22-28 0.0 68.7 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 102 0 0.0 1.0 0.0 100.0 - main Main 205 0 0.0 13.5 0.0 13.5 - CAF Main 203 0 0.0 2.6 0.0 23.2 - fmap Main 212 1 0.0 0.0 0.0 0.0 - <*> Main 208 1 0.0 0.0 0.0 0.0 - main Main 204 1 0.0 0.2 0.0 20.6 - runM Main 206 1 0.0 0.3 0.0 20.4 - bar Main 207 1 0.0 0.2 0.0 20.1 - foo Main 216 1 0.0 0.0 0.0 0.0 - errorM Main 217 1 0.0 0.0 0.0 0.0 - fmap Main 213 0 0.0 0.0 0.0 0.0 - >>= Main 214 1 0.0 0.0 0.0 0.0 - <*> Main 209 0 0.0 0.0 0.0 19.8 - >>= Main 210 1 0.0 0.0 0.0 19.8 - >>=.\ Main 211 2 0.0 0.0 0.0 19.8 - foo Main 218 0 0.0 0.0 0.0 19.8 - errorM Main 219 0 0.0 0.0 0.0 19.8 - errorM.\ Main 220 1 0.0 19.8 0.0 19.8 - fmap Main 215 0 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 197 0 0.0 1.0 0.0 1.0 - CAF GHC.Conc.Sync 196 0 0.0 0.4 0.0 0.4 - CAF GHC.Exception 194 0 0.0 1.2 0.0 1.2 - CAF GHC.IO.Encoding 187 0 0.0 5.2 0.0 5.2 - CAF GHC.IO.Encoding.Iconv 185 0 0.0 0.4 0.0 0.4 - CAF GHC.IO.Handle.FD 177 0 0.0 54.2 0.0 54.2 +MAIN MAIN 46 0 0.0 0.4 0.0 100.0 + CAF Main 91 0 0.0 0.9 0.0 69.8 + <*> Main ioprof.hs:20:5-14 96 1 0.0 0.0 0.0 0.0 + fmap Main ioprof.hs:16:5-16 100 1 0.0 0.0 0.0 0.0 + main Main ioprof.hs:28:1-43 92 1 0.0 0.0 0.0 68.9 + runM Main ioprof.hs:26:1-37 94 1 0.0 0.1 0.0 68.9 + bar Main ioprof.hs:31:1-20 95 1 0.0 0.1 0.0 68.8 + foo Main ioprof.hs:34:1-16 104 1 0.0 0.0 0.0 0.0 + errorM Main ioprof.hs:23:1-28 105 1 0.0 0.0 0.0 0.0 + <*> Main ioprof.hs:20:5-14 97 0 0.0 0.0 0.0 68.7 + >>= Main ioprof.hs:(11,3)-(12,50) 98 1 0.0 0.0 0.0 68.7 + >>=.\ Main ioprof.hs:(11,27)-(12,50) 99 2 0.0 0.0 0.0 68.7 + fmap Main ioprof.hs:16:5-16 103 0 0.0 0.0 0.0 0.0 + foo Main ioprof.hs:34:1-16 106 0 0.0 0.0 0.0 68.7 + errorM Main ioprof.hs:23:1-28 107 0 0.0 0.0 0.0 68.7 + errorM.\ Main ioprof.hs:23:22-28 108 1 0.0 68.7 0.0 68.7 + fmap Main ioprof.hs:16:5-16 101 0 0.0 0.0 0.0 0.0 + >>= Main ioprof.hs:(11,3)-(12,50) 102 1 0.0 0.0 0.0 0.0 + CAF GHC.IO.Exception 89 0 0.0 0.7 0.0 0.7 + CAF GHC.Exception 86 0 0.0 2.5 0.0 2.5 + CAF GHC.IO.Handle.FD 85 0 0.0 19.2 0.0 19.2 + CAF GHC.Conc.Signal 82 0 0.0 0.4 0.0 0.4 + CAF GHC.IO.Encoding 80 0 0.0 1.8 0.0 1.8 + CAF GHC.Conc.Sync 75 0 0.0 0.1 0.0 0.1 + CAF GHC.Stack.CCS 71 0 0.0 0.2 0.0 0.2 + CAF GHC.IO.Encoding.Iconv 64 0 0.0 0.1 0.0 0.1 + main Main ioprof.hs:28:1-43 93 0 0.0 4.8 0.0 4.8 diff --git a/testsuite/tests/profiling/should_run/prof-doc-fib.prof.sample b/testsuite/tests/profiling/should_run/prof-doc-fib.prof.sample index e35a6c746a..f680a6c3ea 100644 --- a/testsuite/tests/profiling/should_run/prof-doc-fib.prof.sample +++ b/testsuite/tests/profiling/should_run/prof-doc-fib.prof.sample @@ -1,27 +1,28 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) - prof-doc-fib +RTS -p -RTS + prof-doc-fib +RTS -hc -p -RTS - total time = 0.31 secs (310 ticks @ 1000 us, 1 processor) - total alloc = 538,951,032 bytes (excludes profiling overheads) + total time = 0.07 secs (75 ticks @ 1000 us, 1 processor) + total alloc = 107,829,040 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -fib Main 100.0 100.0 +fib Main prof-doc-fib.hs:9:1-50 100.0 100.0 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 99 0 0.0 0.0 100.0 100.0 - CAF Main 197 0 0.0 0.0 100.0 100.0 - main Main 198 1 0.0 0.0 100.0 100.0 - main.f Main 201 1 0.0 0.0 100.0 99.9 - fib Main 202 2692537 100.0 99.9 100.0 99.9 - main.g Main 199 1 0.0 0.0 0.0 0.1 - fib Main 200 1973 0.0 0.1 0.0 0.1 - CAF GHC.Conc.Signal 179 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 163 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 161 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 152 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.Text 150 0 0.0 0.0 0.0 0.0 +MAIN MAIN 45 0 0.0 0.0 100.0 100.0 + CAF Main 89 0 0.0 0.0 100.0 100.0 + main Main prof-doc-fib.hs:(4,1)-(7,26) 90 1 0.0 0.0 100.0 100.0 + main.f Main prof-doc-fib.hs:6:5-16 94 1 0.0 0.0 100.0 99.9 + fib Main prof-doc-fib.hs:9:1-50 95 2692537 100.0 99.9 100.0 99.9 + main.g Main prof-doc-fib.hs:7:5-26 92 1 0.0 0.0 0.0 0.1 + fib Main prof-doc-fib.hs:9:1-50 93 1973 0.0 0.1 0.0 0.1 + CAF GHC.IO.Handle.FD 84 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.Text 83 0 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 81 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding 78 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 64 0 0.0 0.0 0.0 0.0 + main Main prof-doc-fib.hs:(4,1)-(7,26) 91 0 0.0 0.0 0.0 0.0 diff --git a/testsuite/tests/profiling/should_run/prof-doc-last.prof.sample b/testsuite/tests/profiling/should_run/prof-doc-last.prof.sample index dd036490e7..371fad43d7 100644 --- a/testsuite/tests/profiling/should_run/prof-doc-last.prof.sample +++ b/testsuite/tests/profiling/should_run/prof-doc-last.prof.sample @@ -1,34 +1,34 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) - prof-doc-last +RTS -p -RTS + prof-doc-last +RTS -hc -p -RTS - total time = 0.16 secs (160 ticks @ 1000 us, 1 processor) - total alloc = 648,053,608 bytes (excludes profiling overheads) + total time = 0.12 secs (121 ticks @ 1000 us, 1 processor) + total alloc = 384,052,480 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -last_init_ys Main 28.1 29.6 -main.ys Main 26.2 24.7 -main.xs Main 16.9 12.3 -last_init_xs Main 14.4 14.8 -last_ys Main 7.5 12.3 -last_xs Main 6.9 6.2 +main.ys Main prof-doc-last.hs:3:15-31 39.7 37.5 +last_init_ys Main prof-doc-last.hs:7:45-58 23.1 29.2 +main.xs Main prof-doc-last.hs:2:15-31 23.1 18.7 +last_init_xs Main prof-doc-last.hs:5:46-59 11.6 14.6 +last_xs Main prof-doc-last.hs:4:41-47 1.7 0.0 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 99 0 0.0 0.0 100.0 100.0 - CAF Main 197 0 0.0 0.0 100.0 100.0 - main Main 198 1 0.0 0.0 100.0 100.0 - last_init_ys Main 204 1 28.1 29.6 28.1 29.6 - main.ys Main 203 1 26.2 24.7 26.2 24.7 - last_ys Main 202 1 7.5 12.3 7.5 12.3 - last_init_xs Main 201 1 14.4 14.8 14.4 14.8 - main.xs Main 200 1 16.9 12.3 16.9 12.3 - last_xs Main 199 1 6.9 6.2 6.9 6.2 - CAF GHC.Conc.Signal 179 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 163 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 161 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 152 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.Text 150 0 0.0 0.0 0.0 0.0 +MAIN MAIN 46 0 0.0 0.0 100.0 100.0 + CAF Main 91 0 0.0 0.0 0.0 0.0 + main Main prof-doc-last.hs:(2,1)-(7,58) 92 1 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.FD 86 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.Text 85 0 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 81 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding 78 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 65 0 0.0 0.0 0.0 0.0 + main Main prof-doc-last.hs:(2,1)-(7,58) 93 0 0.0 0.0 100.0 100.0 + last_init_xs Main prof-doc-last.hs:5:46-59 96 1 11.6 14.6 11.6 14.6 + last_init_ys Main prof-doc-last.hs:7:45-58 99 1 23.1 29.2 23.1 29.2 + last_xs Main prof-doc-last.hs:4:41-47 94 1 1.7 0.0 1.7 0.0 + last_ys Main prof-doc-last.hs:6:41-47 97 1 0.8 0.0 0.8 0.0 + main.xs Main prof-doc-last.hs:2:15-31 95 1 23.1 18.7 23.1 18.7 + main.ys Main prof-doc-last.hs:3:15-31 98 1 39.7 37.5 39.7 37.5 diff --git a/testsuite/tests/profiling/should_run/profinline001.prof.sample b/testsuite/tests/profiling/should_run/profinline001.prof.sample index 6eacf18e1f..b1f10ed2ac 100644 --- a/testsuite/tests/profiling/should_run/profinline001.prof.sample +++ b/testsuite/tests/profiling/should_run/profinline001.prof.sample @@ -1,29 +1,28 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Fri Jun 3 10:46 2016 Time and Allocation Profiling Report (Final) profinline001 +RTS -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 49,056 bytes (excludes profiling overheads) + total alloc = 49,392 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -MAIN MAIN 0.0 1.4 -CAF GHC.IO.Handle.FD 0.0 70.4 -CAF GHC.IO.Encoding 0.0 5.6 -CAF GHC.Conc.Signal 0.0 1.3 -main Main 0.0 19.5 +CAF GHC.IO.Handle.FD 0.0 69.9 +CAF GHC.IO.Encoding 0.0 5.6 +CAF GHC.Conc.Signal 0.0 1.3 +main Main profinline001.hs:3:1-19 0.0 20.8 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 99 0 0.0 1.4 0.0 100.0 - CAF Main 197 0 0.0 0.7 0.0 20.5 - main Main 198 1 0.0 19.5 0.0 19.8 - f Main 199 1 0.0 0.3 0.0 0.4 - g Main 200 1 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 179 0 0.0 1.3 0.0 1.3 - CAF GHC.IO.Encoding 163 0 0.0 5.6 0.0 5.6 - CAF GHC.IO.Encoding.Iconv 161 0 0.0 0.5 0.0 0.5 - CAF GHC.IO.Handle.FD 152 0 0.0 70.4 0.0 70.4 - CAF GHC.IO.Handle.Text 150 0 0.0 0.2 0.0 0.2 +MAIN MAIN 44 0 0.0 0.7 0.0 100.0 + CAF Main 87 0 0.0 0.7 0.0 21.8 + main Main profinline001.hs:3:1-19 88 1 0.0 20.8 0.0 21.1 + f Main profinline001.hs:6:1-21 89 1 0.0 0.3 0.0 0.4 + g Main profinline001.hs:8:1-11 90 1 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 79 0 0.0 1.3 0.0 1.3 + CAF GHC.IO.Encoding 76 0 0.0 5.6 0.0 5.6 + CAF GHC.IO.Handle.FD 74 0 0.0 69.9 0.0 69.9 + CAF GHC.IO.Handle.Text 72 0 0.0 0.2 0.0 0.2 + CAF GHC.IO.Encoding.Iconv 55 0 0.0 0.5 0.0 0.5 diff --git a/testsuite/tests/profiling/should_run/scc001.prof.sample b/testsuite/tests/profiling/should_run/scc001.prof.sample index 6df5768bc9..1144774100 100644 --- a/testsuite/tests/profiling/should_run/scc001.prof.sample +++ b/testsuite/tests/profiling/should_run/scc001.prof.sample @@ -1,33 +1,33 @@ - Thu Apr 2 20:30 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) scc001 +RTS -hc -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 51,344 bytes (excludes profiling overheads) + total alloc = 50,888 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -MAIN MAIN 0.0 1.9 -CAF GHC.IO.Handle.FD 0.0 67.3 -CAF GHC.IO.Encoding 0.0 5.4 -CAF GHC.Conc.Signal 0.0 1.3 -main Main 0.0 22.8 +MAIN MAIN 0.0 1.7 +CAF GHC.IO.Encoding 0.0 5.4 +CAF GHC.Conc.Signal 0.0 1.3 +CAF GHC.IO.Handle.FD 0.0 67.8 +main Main scc001.hs:(5,1)-(7,23) 0.0 22.5 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 98 0 0.0 1.9 0.0 100.0 - main Main 197 0 0.0 22.8 0.0 22.8 - g Main 199 1 0.0 0.0 0.0 0.0 - f Main 198 1 0.0 0.0 0.0 0.0 - CAF Main 195 0 0.0 0.1 0.0 0.1 - (...) Main 201 1 0.0 0.0 0.0 0.0 - h Main 200 1 0.0 0.0 0.0 0.0 - main Main 196 1 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 177 0 0.0 1.3 0.0 1.3 - CAF GHC.IO.Encoding 161 0 0.0 5.4 0.0 5.4 - CAF GHC.IO.Encoding.Iconv 159 0 0.0 0.5 0.0 0.5 - CAF GHC.IO.Handle.FD 150 0 0.0 67.3 0.0 67.3 - CAF GHC.IO.Handle.Text 148 0 0.0 0.2 0.0 0.2 - CAF GHC.Show 135 0 0.0 0.6 0.0 0.6 +MAIN MAIN 46 0 0.0 1.7 0.0 100.0 + CAF Main 91 0 0.0 0.1 0.0 0.1 + (...) Main scc001.hs:16:1-16 97 1 0.0 0.0 0.0 0.0 + h Main scc001.hs:16:1-16 96 1 0.0 0.0 0.0 0.0 + main Main scc001.hs:(5,1)-(7,23) 92 1 0.0 0.0 0.0 0.0 + CAF GHC.Show 88 0 0.0 0.6 0.0 0.6 + CAF GHC.IO.Handle.FD 85 0 0.0 67.8 0.0 67.8 + CAF GHC.IO.Handle.Text 84 0 0.0 0.2 0.0 0.2 + CAF GHC.Conc.Signal 82 0 0.0 1.3 0.0 1.3 + CAF GHC.IO.Encoding 79 0 0.0 5.4 0.0 5.4 + CAF GHC.IO.Encoding.Iconv 65 0 0.0 0.5 0.0 0.5 + main Main scc001.hs:(5,1)-(7,23) 93 0 0.0 22.5 0.0 22.5 + f Main scc001.hs:10:1-7 94 1 0.0 0.0 0.0 0.0 + g Main scc001.hs:13:1-7 95 1 0.0 0.0 0.0 0.0 diff --git a/testsuite/tests/profiling/should_run/scc002.prof.sample b/testsuite/tests/profiling/should_run/scc002.prof.sample index 0c27b965b2..d291ba13c6 100644 --- a/testsuite/tests/profiling/should_run/scc002.prof.sample +++ b/testsuite/tests/profiling/should_run/scc002.prof.sample @@ -1,29 +1,30 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) - scc002 +RTS -p -RTS + scc002 +RTS -hc -p -RTS - total time = 0.01 secs (7 ticks @ 1000 us, 1 processor) - total alloc = 8,049,712 bytes (excludes profiling overheads) + total time = 0.01 secs (6 ticks @ 1000 us, 1 processor) + total alloc = 8,048,752 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -big Main 100.0 99.4 +big Main scc002.hs:24:1-57 100.0 99.4 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 113 0 0.0 0.0 100.0 100.0 - CAF Main 225 0 0.0 0.0 100.0 99.5 - yan Main 227 1 0.0 0.0 100.0 99.4 - yan.e Main 231 1 0.0 0.0 100.0 99.4 - big Main 232 1 100.0 99.4 100.0 99.4 - main Main 226 1 0.0 0.1 0.0 0.1 - yan Main 228 0 0.0 0.0 0.0 0.0 - yan.\ Main 229 2 0.0 0.0 0.0 0.0 - yan1 Main 230 2 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 196 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding 179 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Encoding.Iconv 177 0 0.0 0.0 0.0 0.0 - CAF GHC.IO.Handle.FD 168 0 0.0 0.4 0.0 0.4 - CAF GHC.IO.Handle.Text 166 0 0.0 0.0 0.0 0.0 +MAIN MAIN 44 0 0.0 0.0 100.0 100.0 + CAF Main 87 0 0.0 0.0 100.0 99.4 + main Main scc002.hs:7:1-30 88 1 0.0 0.0 0.0 0.0 + yan Main scc002.hs:26:1-52 91 0 0.0 0.0 0.0 0.0 + yan.\ Main scc002.hs:26:31-52 92 2 0.0 0.0 0.0 0.0 + yan1 Main scc002.hs:26:48-52 93 2 0.0 0.0 0.0 0.0 + yan Main scc002.hs:26:1-52 90 1 0.0 0.0 100.0 99.4 + yan.e Main scc002.hs:26:11-20 94 1 0.0 0.0 100.0 99.4 + big Main scc002.hs:24:1-57 95 1 100.0 99.4 100.0 99.4 + CAF GHC.IO.Handle.FD 81 0 0.0 0.4 0.0 0.4 + CAF GHC.IO.Handle.Text 80 0 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 77 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding 75 0 0.0 0.0 0.0 0.0 + CAF GHC.IO.Encoding.Iconv 61 0 0.0 0.0 0.0 0.0 + main Main scc002.hs:7:1-30 89 0 0.0 0.1 0.0 0.1 diff --git a/testsuite/tests/profiling/should_run/scc003.prof.sample b/testsuite/tests/profiling/should_run/scc003.prof.sample index 9e39de0866..b1c60e8199 100644 --- a/testsuite/tests/profiling/should_run/scc003.prof.sample +++ b/testsuite/tests/profiling/should_run/scc003.prof.sample @@ -1,35 +1,35 @@ - Tue Mar 29 16:44 2016 Time and Allocation Profiling Report (Final) + Sat Jun 4 11:59 2016 Time and Allocation Profiling Report (Final) scc003 +RTS -hc -p -RTS - total time = 0.08 secs (84 ticks @ 1000 us, 1 processor) - total alloc = 48,880 bytes (excludes profiling overheads) + total time = 0.04 secs (35 ticks @ 1000 us, 1 processor) + total alloc = 48,704 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -fib Main 100.0 0.0 -MAIN MAIN 0.0 1.8 -CAF GHC.IO.Handle.FD 0.0 70.7 -CAF GHC.IO.Encoding 0.0 5.9 -CAF GHC.Conc.Signal 0.0 1.3 -main Main 0.0 19.5 +fib Main scc003.hs:8:1-50 100.0 0.0 +MAIN MAIN 0.0 1.7 +CAF GHC.IO.Encoding 0.0 5.7 +CAF GHC.Conc.Signal 0.0 1.3 +CAF GHC.IO.Handle.FD 0.0 70.9 +main Main scc003.hs:2:1-22 0.0 19.6 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 105 0 0.0 1.8 100.0 100.0 - main Main 211 0 0.0 18.9 0.0 18.9 - CAF Main 209 0 0.0 0.0 100.0 0.7 - main Main 210 1 0.0 0.6 100.0 0.7 - f Main 212 1 0.0 0.0 100.0 0.1 - f.\ Main 216 1 0.0 0.0 100.0 0.0 - fib Main 217 2692537 100.0 0.0 100.0 0.0 - f.x' Main 215 1 0.0 0.0 0.0 0.0 - f.(...) Main 213 1 0.0 0.0 0.0 0.0 - fib Main 214 21891 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 203 0 0.0 1.3 0.0 1.3 - CAF GHC.IO.Encoding 193 0 0.0 5.9 0.0 5.9 - CAF GHC.IO.Encoding.Iconv 191 0 0.0 0.5 0.0 0.5 - CAF GHC.IO.Handle.FD 183 0 0.0 70.7 0.0 70.7 - CAF GHC.IO.Handle.Text 181 0 0.0 0.2 0.0 0.2 +MAIN MAIN 44 0 0.0 1.7 100.0 100.0 + CAF Main 87 0 0.0 0.0 100.0 0.7 + main Main scc003.hs:2:1-22 88 1 0.0 0.6 100.0 0.7 + f Main scc003.hs:5:1-41 90 1 0.0 0.0 100.0 0.1 + f.(...) Main scc003.hs:5:11-21 91 1 0.0 0.0 0.0 0.0 + fib Main scc003.hs:8:1-50 92 21891 0.0 0.0 0.0 0.0 + f.\ Main scc003.hs:5:32-41 94 1 0.0 0.0 100.0 0.0 + fib Main scc003.hs:8:1-50 95 2692537 100.0 0.0 100.0 0.0 + f.x' Main scc003.hs:5:11-21 93 1 0.0 0.0 0.0 0.0 + CAF GHC.IO.Handle.FD 82 0 0.0 70.9 0.0 70.9 + CAF GHC.IO.Handle.Text 81 0 0.0 0.2 0.0 0.2 + CAF GHC.Conc.Signal 79 0 0.0 1.3 0.0 1.3 + CAF GHC.IO.Encoding 76 0 0.0 5.7 0.0 5.7 + CAF GHC.IO.Encoding.Iconv 63 0 0.0 0.5 0.0 0.5 + main Main scc003.hs:2:1-22 89 0 0.0 19.0 0.0 19.0 diff --git a/testsuite/tests/profiling/should_run/scc005.prof.sample b/testsuite/tests/profiling/should_run/scc005.prof.sample index 2db2dc3e4c..2ad0f621e3 100644 --- a/testsuite/tests/profiling/should_run/scc005.prof.sample +++ b/testsuite/tests/profiling/should_run/scc005.prof.sample @@ -1,27 +1,26 @@ - Thu Apr 2 19:44 2015 Time and Allocation Profiling Report (Final) + Fri Jun 3 10:59 2016 Time and Allocation Profiling Report (Final) scc005 +RTS -p -RTS total time = 0.00 secs (0 ticks @ 1000 us, 1 processor) - total alloc = 39,136 bytes (excludes profiling overheads) + total alloc = 39,008 bytes (excludes profiling overheads) -COST CENTRE MODULE %time %alloc +COST CENTRE MODULE SRC %time %alloc -MAIN MAIN 0.0 1.2 -CAF GHC.IO.Handle.FD 0.0 88.3 -CAF GHC.IO.Encoding 0.0 7.1 -CAF GHC.Conc.Signal 0.0 1.7 +CAF GHC.IO.Handle.FD 0.0 88.5 +CAF GHC.IO.Encoding 0.0 7.1 +CAF GHC.Conc.Signal 0.0 1.7 - individual inherited -COST CENTRE MODULE no. entries %time %alloc %time %alloc + individual inherited +COST CENTRE MODULE SRC no. entries %time %alloc %time %alloc -MAIN MAIN 98 0 0.0 1.2 0.0 100.0 - CAF Main 195 0 0.0 0.9 0.0 1.2 - main Main 196 1 0.0 0.2 0.0 0.3 - g Main 197 1 0.0 0.2 0.0 0.2 - f Main 198 1 0.0 0.0 0.0 0.0 - CAF GHC.Conc.Signal 177 0 0.0 1.7 0.0 1.7 - CAF GHC.IO.Encoding 161 0 0.0 7.1 0.0 7.1 - CAF GHC.IO.Encoding.Iconv 159 0 0.0 0.6 0.0 0.6 - CAF GHC.IO.Handle.FD 150 0 0.0 88.3 0.0 88.3 +MAIN MAIN 43 0 0.0 0.9 0.0 100.0 + CAF Main 85 0 0.0 0.9 0.0 1.2 + main Main scc005.hs:10:1-22 86 1 0.0 0.2 0.0 0.3 + g Main scc005.hs:7:1-13 87 1 0.0 0.2 0.0 0.2 + f Main scc005.hs:3:1-9 88 1 0.0 0.0 0.0 0.0 + CAF GHC.Conc.Signal 77 0 0.0 1.7 0.0 1.7 + CAF GHC.IO.Encoding 74 0 0.0 7.1 0.0 7.1 + CAF GHC.IO.Handle.FD 72 0 0.0 88.5 0.0 88.5 + CAF GHC.IO.Encoding.Iconv 54 0 0.0 0.6 0.0 0.6 -- GitLab