diff lisp/diagnose.el @ 5059:c8f90d61dcf3

fix memory usage stats to include pdumped objects -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-02-21 Ben Wing <ben@xemacs.org> * diagnose.el: * diagnose.el (show-object-memory-usage-stats): Fix errors preventing this from working properly, account for words like "entry" pluralized to "entries". src/ChangeLog addition: 2010-02-21 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC): * alloc.c (struct): * alloc.c (tick_lrecord_stats): * alloc.c (tick_lcrecord_stats): * alloc.c (sweep_lcrecords_1): * alloc.c (COUNT_FROB_BLOCK_USAGE): * alloc.c (SWEEP_FIXED_TYPE_BLOCK_1): * alloc.c (free_cons): * alloc.c (free_key_data): * alloc.c (free_button_data): * alloc.c (free_motion_data): * alloc.c (free_process_data): * alloc.c (free_timeout_data): * alloc.c (free_magic_data): * alloc.c (free_magic_eval_data): * alloc.c (free_eval_data): * alloc.c (free_misc_user_data): * alloc.c (free_marker): * alloc.c (gc_sweep_1): * alloc.c (HACK_O_MATIC): * alloc.c (FROB): * alloc.c (object_memory_usage_stats): * alloc.c (Fgarbage_collect): * dumper.c: * dumper.c (pdump_objects_unmark): * lrecord.h: * lrecord.h (enum lrecord_alloc_status): Fixes to memory-usage-tracking code, etc. (1) Incorporate NEW_GC stuff into FREE_FIXED_TYPE_WHEN_NOT_IN_GC to avoid duplication. (2) Rewrite tick_lcrecord_stats() to include separate tick_lrecord_stats(); use in dumper.c to note pdumped objects. (3) Instead of handling frob-block objects specially in object_memory_usage_stats(), have SWEEP_FIXED_TYPE_BLOCK_1 increment the stats in lrecord_stats[] so that they get handled like other objects. (4) Pluralize entry as entries, etc.
author Ben Wing <ben@xemacs.org>
date Sun, 21 Feb 2010 15:29:12 -0600
parents b4f4e0cc90f1
children 1fae11d56ad2
line wrap: on
line diff
--- a/lisp/diagnose.el	Sun Feb 21 05:19:08 2010 -0600
+++ b/lisp/diagnose.el	Sun Feb 21 15:29:12 2010 -0600
@@ -1,6 +1,6 @@
 ;;; diagnose.el --- routines for debugging problems in XEmacs
 
-;; Copyright (C) 2002 Ben Wing.
+;; Copyright (C) 2002, 2010 Ben Wing.
 
 ;; Maintainer: XEmacs Development Team
 ;; Keywords: dumped
@@ -197,29 +197,33 @@
 			 (intern (concat (match-string 1 (symbol-name stat))
 					 "-storage-including-overhead"))))
 		       (storage-count 
-			(or (plist-get 
-			     plist 
-			     (intern 
-			      (concat (match-string 1 (symbol-name stat)) 
-				      "s-used")))
+			(or (loop for str in '("s-used" "es-used" "-used")
+			      for val = (plist-get
+					 plist
+					 (intern
+					  (concat (match-string
+						   1 (symbol-name stat)) 
+						  str)))
+			      if val
+			      return val)
 			    (plist-get 
 			     plist 
 			     (intern 
-			      (concat (match-string 1 (symbol-name stat))
-				      "es-used")))
-			    (plist-get 
-			     plist 
-			     (intern 
-			      (concat (match-string 1 (symbol-name stat))
-				      "-used"))))))
+			      (concat (substring
+				       (match-string 1 (symbol-name stat))
+				       0 -1)
+				      "ies-used")))
+			    )))
 		   (incf total-use storage-use)
 		   (incf total-use-overhead (if storage-use-overhead 
 						storage-use-overhead 
 					      storage-use))
-		   (incf total-count storage-count)
-		   (princ (format fmt
-				  (match-string 1 (symbol-name stat)) 
-				  storage-count storage-use)))))
+		   (incf total-count (or storage-count 0))
+		   (and (> storage-use 0)
+			(princ (format fmt
+				       (match-string 1 (symbol-name stat)) 
+				       (or storage-count "unknown")
+				       storage-use))))))
 	   plist)
 	  (princ "\n")
 	  (princ (format fmt "total" 
@@ -229,7 +233,7 @@
             (sort-numeric-fields -1
                                  (save-excursion
                                    (goto-char begin)
-                                   (forward-line 2)
+                                   (forward-line 3)
                                    (point))
                                  (save-excursion
                                    (forward-line -2)