]> code.delx.au - gnu-emacs/commitdiff
Improve dumped memory report on MS-Windows.
authorEli Zaretskii <eliz@gnu.org>
Wed, 4 Jun 2014 11:46:51 +0000 (14:46 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 4 Jun 2014 11:46:51 +0000 (14:46 +0300)
 src/w32heap.c (report_temacs_memory_usage): Improve the report by
 reporting the large blocks that are actually occupied at dump time.

src/ChangeLog
src/w32heap.c

index 7903a0f5039310ebe2f589dfc04fa89d7f2d6570..424a828e1fa487199810d4e6038da09a65471e28 100644 (file)
@@ -1,5 +1,9 @@
 2014-06-04  Eli Zaretskii  <eliz@gnu.org>
 
+       * w32heap.c (report_temacs_memory_usage): Improve the report by
+       reporting the large blocks that are actually occupied at dump
+       time.
+
        * w32console.c (initialize_w32_display): Set the console
        menu_show_hook, otherwise TTY menus are broken on w32.
 
index 011bffdc9abd9d9ca8ae11bb547a7eee3d373f2a..8c547ff64604806d2d8a18f61583f9e60d3fa82c 100644 (file)
@@ -479,7 +479,7 @@ free_before_dump (void *ptr)
       /* Look for the big chunk.  */
       int i;
 
-      for(i = 0; i < blocks_number; i++)
+      for (i = 0; i < blocks_number; i++)
        {
          if (blocks[i].address == ptr)
            {
@@ -498,11 +498,22 @@ free_before_dump (void *ptr)
 void
 report_temacs_memory_usage (void)
 {
+  DWORD blocks_used = 0, large_mem_used = 0;
+  int i;
+
+  for (i = 0; i < blocks_number; i++)
+    if (blocks[i].occupied)
+      {
+       blocks_used++;
+       large_mem_used += blocks[i].size;
+      }
+
   /* Emulate 'message', which writes to stderr in non-interactive
      sessions.  */
   fprintf (stderr,
-          "Dump memory usage: Heap: %" PRIu64 "  Large blocks(%lu): %" PRIu64 "\n",
-          (unsigned long long)committed, blocks_number,
+          "Dump memory usage: Heap: %" PRIu64 "  Large blocks(%lu/%lu): %" PRIu64 "/%" PRIu64 "\n",
+          (unsigned long long)committed, blocks_used, blocks_number,
+          (unsigned long long)large_mem_used,
           (unsigned long long)(dumped_data + DUMPED_HEAP_SIZE - bc_limit));
 }
 #endif