emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/memory-usage 23b0815 7/9: * memory-usage.el: Adjust for


From: Stefan Monnier
Subject: [elpa] externals/memory-usage 23b0815 7/9: * memory-usage.el: Adjust for new values of garbage-collect.
Date: Tue, 1 Dec 2020 16:21:14 -0500 (EST)

branch: externals/memory-usage
commit 23b0815ccddb2a301d88a7d979d8f7618fc4143f
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * memory-usage.el: Adjust for new values of garbage-collect.
---
 memory-usage.el | 69 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 34 insertions(+), 35 deletions(-)

diff --git a/memory-usage.el b/memory-usage.el
index 1f73310..6e3749d 100644
--- a/memory-usage.el
+++ b/memory-usage.el
@@ -78,42 +78,41 @@
   (let* ((bufs (buffer-list))
         (num (length bufs))
         (gc-stats (garbage-collect))
-        (conses    (memory-usage-mult-cons 2 (nth 0 gc-stats)))
-        (symbols   (memory-usage-mult-cons 6 (nth 1 gc-stats)))
-        (markers   (memory-usage-mult-cons 5 (nth 2 gc-stats)))
-        (chars     (nth 3 gc-stats))
-        (vectors   (nth 4 gc-stats))
-        (floats    (memory-usage-mult-cons 2 (nth 5 gc-stats)))
-        (intervals (memory-usage-mult-cons 7 (nth 6 gc-stats)))
-         (strings   (memory-usage-mult-cons 4 (nth 7 gc-stats))))
-    (if (consp vectors) (setq vectors (cdr vectors)))
+         (gc-stats (if (numberp (caar gc-stats))
+                       (mapcar (lambda (x)
+                                 `(,(car x)
+                                   ,(max (* memory-usage-word-size (cadr x))
+                                         1)
+                                   ,@(let ((stat (nth (cddr x) gc-stats)))
+                                       (if (consp stat)
+                                           (list (car stat) (cdr stat))
+                                         (list stat)))))
+                               '((cons 2 . 0)
+                                 (symbol 6 . 1)
+                                 (marker 5 . 2)
+                                 (string 4 . 7)
+                                 (string-byte 0 . 3)
+                                 (vector-slot 1 . 4)
+                                 (float 2 . 5)
+                                 (interval 7 . 6)))
+                     gc-stats)))
     (insert (format "Garbage collection stats:\n%s\n\n =>" gc-stats))
-    (dolist (x `(("cons cells" . ,conses)
-                 ("symbols" . ,symbols)
-                 ("markers" . ,markers)
-                 ("floats" . ,floats)
-                 ("intervals" . ,intervals)
-                 ("string headers" . ,strings)))
-      (insert (format "\t%s (+ %s dead) in %s\n"
-                    (memory-usage-format (cadr x))
-                    (memory-usage-format (cddr x))
-                    (car x))))
-    (insert (format "\t%s of string chars\n" (memory-usage-format chars)))
-    (insert (format "\t%s of vector slots\n" (memory-usage-format vectors)))
-    (let ((live (+ (car conses)
-                   (car symbols)
-                   (car markers)
-                   (car floats)
-                   (car intervals)
-                   (car strings)
-                   chars
-                  vectors))
-          (dead (+ (cdr conses)
-                   (cdr symbols)
-                   (cdr markers)
-                   (cdr floats)
-                   (cdr intervals)
-                   (cdr strings))))
+    (let ((live 0)
+          (dead 0))
+      (dolist (x gc-stats)
+        (let* ((size (nth 1 x))
+               (xlive (* size (nth 2 x)))
+               (xdead (if (nth 3 x) (* size (nth 3 x)))))
+          (insert (if xdead
+                      (format "\t%s (+ %s dead) in %s\n"
+                              (memory-usage-format xlive)
+                              (memory-usage-format xdead)
+                              (car x))
+                    (format "\t%s in %s\n"
+                            (memory-usage-format xlive)
+                            (car x))))
+          (setq live (+ live xlive))
+          (if xdead (setq dead (+ dead xdead)))))
 
       (insert (format "\nTotal in lisp objects: %s (live %s, dead %s)\n\n"
                       (memory-usage-format (+ dead live))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]