aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32heap.c
diff options
context:
space:
mode:
authorEli Zaretskii2014-06-04 14:46:51 +0300
committerEli Zaretskii2014-06-04 14:46:51 +0300
commita7f999dc5f002030c9a4c648f7017acf11274b1d (patch)
tree1ecec1fecc6f181989a516780c8d169362047f5c /src/w32heap.c
parent5dff48b0f8a399899f72e1fcf2db0a552f071070 (diff)
downloademacs-a7f999dc5f002030c9a4c648f7017acf11274b1d.tar.gz
emacs-a7f999dc5f002030c9a4c648f7017acf11274b1d.zip
Improve dumped memory report on MS-Windows.
src/w32heap.c (report_temacs_memory_usage): Improve the report by reporting the large blocks that are actually occupied at dump time.
Diffstat (limited to 'src/w32heap.c')
-rw-r--r--src/w32heap.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/w32heap.c b/src/w32heap.c
index 011bffdc9ab..8c547ff6460 100644
--- a/src/w32heap.c
+++ b/src/w32heap.c
@@ -479,7 +479,7 @@ free_before_dump (void *ptr)
479 /* Look for the big chunk. */ 479 /* Look for the big chunk. */
480 int i; 480 int i;
481 481
482 for(i = 0; i < blocks_number; i++) 482 for (i = 0; i < blocks_number; i++)
483 { 483 {
484 if (blocks[i].address == ptr) 484 if (blocks[i].address == ptr)
485 { 485 {
@@ -498,11 +498,22 @@ free_before_dump (void *ptr)
498void 498void
499report_temacs_memory_usage (void) 499report_temacs_memory_usage (void)
500{ 500{
501 DWORD blocks_used = 0, large_mem_used = 0;
502 int i;
503
504 for (i = 0; i < blocks_number; i++)
505 if (blocks[i].occupied)
506 {
507 blocks_used++;
508 large_mem_used += blocks[i].size;
509 }
510
501 /* Emulate 'message', which writes to stderr in non-interactive 511 /* Emulate 'message', which writes to stderr in non-interactive
502 sessions. */ 512 sessions. */
503 fprintf (stderr, 513 fprintf (stderr,
504 "Dump memory usage: Heap: %" PRIu64 " Large blocks(%lu): %" PRIu64 "\n", 514 "Dump memory usage: Heap: %" PRIu64 " Large blocks(%lu/%lu): %" PRIu64 "/%" PRIu64 "\n",
505 (unsigned long long)committed, blocks_number, 515 (unsigned long long)committed, blocks_used, blocks_number,
516 (unsigned long long)large_mem_used,
506 (unsigned long long)(dumped_data + DUMPED_HEAP_SIZE - bc_limit)); 517 (unsigned long long)(dumped_data + DUMPED_HEAP_SIZE - bc_limit));
507} 518}
508#endif 519#endif