[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/memory-usage 1351de6 5/9: * memory-usage.el (memory-usa
From: |
Stefan Monnier |
Subject: |
[elpa] externals/memory-usage 1351de6 5/9: * memory-usage.el (memory-usage-format): New function. |
Date: |
Tue, 1 Dec 2020 16:21:13 -0500 (EST) |
branch: externals/memory-usage
commit 1351de69ffdd822549518ce7bfd3fe5fcfe46c82
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* memory-usage.el (memory-usage-format): New function.
(memory-usage): Use it.
---
memory-usage.el | 57 ++++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 38 insertions(+), 19 deletions(-)
diff --git a/memory-usage.el b/memory-usage.el
index 7786035..7a58c21 100644
--- a/memory-usage.el
+++ b/memory-usage.el
@@ -56,6 +56,19 @@
(setq n (* n memory-usage-word-size))
(cons (* n (car c)) (* n (cdr c))))
+(defun memory-usage-format (bytes)
+ (setq bytes (/ bytes 1024.0))
+ (let ((units '(;; "B"
+ "kB" "MB" "GB" "TB")))
+ (while (>= bytes 1024)
+ (setq bytes (/ bytes 1024.0))
+ (setq units (cdr units)))
+ (cond
+ ;; ((integerp bytes) (format "%4d%s" bytes (car units)))
+ ((>= bytes 100) (format "%4.0f%s" bytes (car units)))
+ ((>= bytes 10) (format "%4.1f%s" bytes (car units)))
+ (t (format "%4.2f%s" bytes (car units))))))
+
;;;###autoload
(defun memory-usage ()
"List all buffers and their memory usage."
@@ -73,17 +86,20 @@
(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)))
(insert (format "Garbage collection stats:\n%s\n\n =>" gc-stats))
- (insert (format "\t%d+%d bytes in cons cells\n" (car conses) (cdr conses)))
- (insert (format "\t%d+%d bytes in symbols\n" (car symbols) (cdr symbols)))
- (insert (format "\t%d+%d bytes in markers\n" (car markers) (cdr markers)))
- (insert (format "\t%d+%d bytes in floats\n" (car floats) (cdr floats)))
- (insert (format "\t%d+%d bytes in intervals\n"
- (car intervals) (cdr intervals)))
- (insert (format "\t%d+%d bytes in string headers\n"
- (car strings) (cdr strings)))
- (insert (format "\t%d bytes of string chars\n" chars))
- (insert (format "\t%d bytes of vector slots\n" vectors))
+ (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)
@@ -99,13 +115,18 @@
(cdr intervals)
(cdr strings))))
- (insert (format "\nTotal bytes in lisp objects: %d (live %d, dead
%d)\n\n"
- (+ dead live) live dead)))
-
- (insert (format "Buffer ralloc memory usage:\n%d buffers\n%d bytes total
(%d in gaps)\n"
- num
- (apply #'+ (mapcar #'memory-usage-buffer-total-bytes bufs))
- (apply #'+ (mapcar #'memory-usage-buffer-gap-bytes bufs))))
+ (insert (format "\nTotal in lisp objects: %s (live %s, dead %s)\n\n"
+ (memory-usage-format (+ dead live))
+ (memory-usage-format live)
+ (memory-usage-format dead))))
+
+ (insert
+ (format "Buffer ralloc memory usage:\n%d buffers\n%s total (%s in gaps)\n"
+ num
+ (memory-usage-format
+ (apply #'+ (mapcar #'memory-usage-buffer-total-bytes bufs)))
+ (memory-usage-format
+ (apply #'+ (mapcar #'memory-usage-buffer-gap-bytes bufs)))))
(insert (format "%10s\t%s\t%s\n\n" "Size" "Gap" "Name"))
(insert (mapconcat
(lambda (b)
@@ -120,7 +141,5 @@
(insert "\n"))
(goto-char (point-min)))
-
(provide 'memory-usage)
-;; arch-tag: 04e012f0-3c59-4319-8d1a-e86204671ec5
;;; memory-usage.el ends here
- [elpa] branch externals/memory-usage created (now c7a9420), Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage a88374c 1/9: * memory-usage: New package., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage bc4e515 2/9: Add version tag and commentary to the memory-usage package., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage 2f446d8 3/9: Fix bug in `memory-usage' package., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage 0c25f6f 4/9: * memory-usage.el (memory-usage): Fix vector size display., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage c7a9420 9/9: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage 0d09e8a 6/9: memory-usage (memory-usage-find-large-variables): New command., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage 1351de6 5/9: * memory-usage.el (memory-usage-format): New function.,
Stefan Monnier <=
- [elpa] externals/memory-usage 23b0815 7/9: * memory-usage.el: Adjust for new values of garbage-collect., Stefan Monnier, 2020/12/01
- [elpa] externals/memory-usage cb73fe6 8/9: * memory-usage: Bump version, belatedly., Stefan Monnier, 2020/12/01