From d5a0f6d9ec44a97a6009b2b965b852c2664cdc75 Mon Sep 17 00:00:00 2001 From: vsc Date: Wed, 27 Feb 2002 02:39:11 +0000 Subject: [PATCH] improve statistics from ^c handler git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@391 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/sysbits.c | 69 +++++++++++++++-------------------------------------- 1 file changed, 19 insertions(+), 50 deletions(-) diff --git a/C/sysbits.c b/C/sysbits.c index e9cbb39ff..fb598f529 100644 --- a/C/sysbits.c +++ b/C/sysbits.c @@ -1107,56 +1107,25 @@ InteractSIGINT(int ch) { #endif case 's': /* show some statistics */ -#if SHORT_INTS==0 - YP_fprintf(YP_stderr, "aux. stack: %d ", Unsigned (AuxTop) - - Unsigned (LCL0 + 1)); - if (Unsigned (AuxSp) <= Unsigned (LCL0)) - YP_fprintf(YP_stderr, "( 0 bytes used)\n"); - else - YP_fprintf(YP_stderr, "( %d bytes used)\n", - Unsigned (AuxSp) - Unsigned (LCL0 + 1)); - YP_fprintf(YP_stderr, "heap space: %d ", Unsigned (AuxTop) - - Unsigned (HeapBase)); - YP_fprintf(YP_stderr, "( %d bytes used for heap", - Unsigned (HeapUsed)); - YP_fprintf(YP_stderr, " and %d bytes used for trail)\n", - Unsigned (TR) - Unsigned (TrailBase)); - YP_fprintf(YP_stderr, "stack space: %d ", Unsigned (LCL0) - - Unsigned (H0)); - YP_fprintf(YP_stderr, "( %d bytes used for local", - Unsigned (LCL0) - Unsigned (ASP)); - YP_fprintf(YP_stderr, " and %d bytes used for global)\n", - Unsigned (H) - Unsigned (H0)); -#else - YP_fprintf(YP_stderr, "aux. stack: %ld ", Unsigned (AuxTop) - - Unsigned (LCL0 + 1)); - if (Unsigned (AuxSp) <= Unsigned (LCL0)) - YP_fprintf(YP_stderr, "( 0 bytes used)\n"); - else - YP_fprintf(YP_stderr, "( %ld bytes used)\n", - Unsigned (AuxSp) - Unsigned (LCL0 + 1)); - YP_fprintf(YP_stderr, "heap space: %ld ", Unsigned (AuxTop) - - Unsigned (HeapBase)); - YP_fprintf(YP_stderr, "( %ld bytes used for heap", - Unsigned (HeapUsed)); - YP_fprintf(YP_stderr, " and %ld bytes used for trail)\n", - Unsigned (TR) - Unsigned (TrailBase)); - YP_fprintf(YP_stderr, "stack space: %ld ", Unsigned (LCL0) - - Unsigned (H0)); - YP_fprintf(YP_stderr, "( %ld bytes used for local", - Unsigned (LCL0) - Unsigned (ASP)); - YP_fprintf(YP_stderr, " and %ld bytes used for global)\n", - Unsigned (H) - Unsigned (H0)); -#endif -#if SHORT_INTS - YP_fprintf(YP_stderr, "Runtime: %lds.\n", runtime ()); - YP_fprintf(YP_stderr, "Cputime: %lds.\n", cputime ()); - YP_fprintf(YP_stderr, "Walltime: %lds.\n", walltime ()); -#else - YP_fprintf(YP_stderr, "Runtime: %ds.\n", runtime ()); - YP_fprintf(YP_stderr, "Cputime: %ds.\n", cputime ()); - YP_fprintf(YP_stderr, "Walltime: %ds.\n", walltime ()); -#endif + { + unsigned long int heap_space_taken = + (unsigned long int)(Unsigned(HeapTop)-Unsigned(HeapBase)); + double frag = (100.0*(heap_space_taken-HeapUsed))/heap_space_taken; + YP_fprintf(YP_stderr, "Code Space: %ld (%ld bytes used, fragmentation %.3f\%).\n", + (unsigned long int)(Unsigned (AuxTop) - Unsigned (HeapBase)), + (unsigned long int)(HeapUsed), + frag); + YP_fprintf(YP_stderr, "Stack Space: %ld (%ld for Global, %ld for local).\n", + (unsigned long int)(sizeof(CELL)*(LCL0-H0)), + (unsigned long int)(sizeof(CELL)*(H-H0)), + (unsigned long int)(sizeof(CELL)*(LCL0-ASP))); + YP_fprintf(YP_stderr, "Trail Space: %ld (%ld used).\n", + (unsigned long int)(sizeof(tr_fr_ptr)*(Unsigned(TrailTop)-Unsigned(TrailBase))), + (unsigned long int)(sizeof(tr_fr_ptr)*(Unsigned(TR)-Unsigned(TrailBase)))); + YP_fprintf(YP_stderr, "Runtime: %lds.\n", (unsigned long int)(runtime ())); + YP_fprintf(YP_stderr, "Cputime: %lds.\n", (unsigned long int)(cputime ())); + YP_fprintf(YP_stderr, "Walltime: %lds.\n", (unsigned long int)(walltime ())); + } return(1); case EOF: return(0);