diff options
author | Tim Peters <tim.peters@gmail.com> | 2002-04-06 01:45:35 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2002-04-06 01:45:35 (GMT) |
commit | 49f26817eb31d39339fbbf73c707b0e685ae649a (patch) | |
tree | cdeae5b653c9a70b371835fa89ae36350e09af32 /Objects/obmalloc.c | |
parent | 8ace1ab53a49d90d66e8a03491a272c70ad4eb46 (diff) | |
download | cpython-49f26817eb31d39339fbbf73c707b0e685ae649a.zip cpython-49f26817eb31d39339fbbf73c707b0e685ae649a.tar.gz cpython-49f26817eb31d39339fbbf73c707b0e685ae649a.tar.bz2 |
Minor improvements to the stats output dump, including adding commas to
the big numbers.
Diffstat (limited to 'Objects/obmalloc.c')
-rw-r--r-- | Objects/obmalloc.c | 44 |
1 files changed, 34 insertions, 10 deletions
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c index 435c4b6..fba03ea 100644 --- a/Objects/obmalloc.c +++ b/Objects/obmalloc.c @@ -1197,14 +1197,37 @@ _PyMalloc_DebugDumpAddress(const void *p) static ulong printone(const char* msg, ulong value) { - const size_t len = strlen(msg); - size_t i; + int i, k; + char buf[100]; + ulong origvalue = value; fputs(msg, stderr); - for (i = len; i < 40; ++i) + for (i = (int)strlen(msg); i < 35; ++i) fputc(' ', stderr); - fprintf(stderr, "= %15lu\n", value); - return value; + fputc('=', stderr); + + /* Write the value with commas. */ + i = 22; + buf[i--] = '\0'; + buf[i--] = '\n'; + k = 3; + do { + ulong nextvalue = value / 10UL; + uint digit = value - nextvalue * 10UL; + value = nextvalue; + buf[i--] = (char)(digit + '0'); + --k; + if (k == 0 && value && i >= 0) { + k = 3; + buf[i--] = ','; + } + } while (value && i >= 0); + + while (i >= 0) + buf[i--] = ' '; + fputs(buf, stderr); + + return origvalue; } /* Print summary info to stderr about the state of pymalloc's structures. */ @@ -1284,8 +1307,8 @@ _PyMalloc_DebugDumpStats(void) } fputc('\n', stderr); - fputs("class num bytes num pools blocks in use avail blocks\n" - "----- --------- --------- ------------- ------------\n", + fputs("class size num pools blocks in use avail blocks\n" + "----- ---- --------- ------------- ------------\n", stderr); for (i = 0; i < numclasses; ++i) { @@ -1297,7 +1320,7 @@ _PyMalloc_DebugDumpStats(void) assert(b == 0 && f == 0); continue; } - fprintf(stderr, "%5u %11u %11lu %15lu %13lu\n", + fprintf(stderr, "%5u %6u %11lu %15lu %13lu\n", i, size, p, b, f); allocated_bytes += b * size; available_bytes += f * size; @@ -1312,11 +1335,12 @@ _PyMalloc_DebugDumpStats(void) fputc('\n', stderr); + total = printone("# bytes in allocated blocks", allocated_bytes); + PyOS_snprintf(buf, sizeof(buf), "%u unused pools * %d bytes", numfreepools, POOL_SIZE); - total = printone(buf, (ulong)numfreepools * POOL_SIZE); + total += printone(buf, (ulong)numfreepools * POOL_SIZE); - total += printone("# bytes in allocated blocks", allocated_bytes); total += printone("# bytes in available blocks", available_bytes); total += printone("# bytes lost to pool headers", pool_header_bytes); total += printone("# bytes lost to quantization", quantization); |