diff --git a/racket/src/racket/src/thread.c b/racket/src/racket/src/thread.c index 1014d4d720..e51c0d5a28 100644 --- a/racket/src/racket/src/thread.c +++ b/racket/src/racket/src/thread.c @@ -9104,7 +9104,7 @@ static void done_with_GC() } #ifdef MZ_PRECISE_GC -static char *gc_num(char *nums, intptr_t v) +static char *gc_unscaled_num(char *nums, intptr_t v) /* format a number with commas */ { int i, j, len, clen, c, d; @@ -9112,8 +9112,6 @@ static char *gc_num(char *nums, intptr_t v) } i++; - v /= 1024; /* bytes => kbytes */ - sprintf(nums+i, "%" PRIdPTR, v); for (len = 0; nums[i+len]; len++) { } clen = len + ((len + ((nums[i] == '-') ? -2 : -1)) / 3); @@ -9133,6 +9131,10 @@ static char *gc_num(char *nums, intptr_t v) return nums + i; } +static char *gc_num(char *nums, intptr_t v) +{ + return gc_unscaled_num(nums, v/1024); /* bytes => kbytes */ +} #ifdef MZ_XFORM END_XFORM_SKIP; @@ -9223,16 +9225,18 @@ static void log_peak_memory_use() if (max_gc_pre_used_bytes > 0) { logger = scheme_get_gc_logger(); if (logger && scheme_log_level_p(logger, SCHEME_LOG_DEBUG)) { - char buf[256], nums[128], *num; + char buf[256], nums[128], *num, *num2; intptr_t buflen; memset(nums, 0, sizeof(nums)); num = gc_num(nums, max_gc_pre_used_bytes); + num2 = gc_unscaled_num(nums, scheme_total_gc_time); sprintf(buf, - "" PLACE_ID_FORMAT "atexit peak was %sK", + "" PLACE_ID_FORMAT "atexit peak was %sK; total %sms", #ifdef MZ_USE_PLACES scheme_current_place_id, #endif - num); + num, + num2); buflen = strlen(buf); scheme_log_message(logger, SCHEME_LOG_DEBUG, buf, buflen, scheme_false); /* Setting to a negative value ensures that we log the peak only once: */