------------------------------------------------------------ revno: 248 committer: Stefan Monnier <monn...@iro.umontreal.ca> branch nick: elpa timestamp: Wed 2012-08-22 09:45:28 -0400 message: * memory-usage.el: Adjust for new values of garbage-collect. modified: packages/memory-usage/memory-usage.el
=== modified file 'packages/memory-usage/memory-usage.el' --- a/packages/memory-usage/memory-usage.el 2012-03-22 16:31:33 +0000 +++ b/packages/memory-usage/memory-usage.el 2012-08-22 13:45:28 +0000 @@ -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))