[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/memory-usage 0d09e8a 6/9: memory-usage (memory-usage-fi
From: |
Stefan Monnier |
Subject: |
[elpa] externals/memory-usage 0d09e8a 6/9: memory-usage (memory-usage-find-large-variables): New command. |
Date: |
Tue, 1 Dec 2020 16:21:14 -0500 (EST) |
branch: externals/memory-usage
commit 0d09e8adc273a2c65507a661f729ec4d8d8af173
Author: Ami Fischman <ami@fischman.org>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
memory-usage (memory-usage-find-large-variables): New command.
---
memory-usage.el | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/memory-usage.el b/memory-usage.el
index 7a58c21..1f73310 100644
--- a/memory-usage.el
+++ b/memory-usage.el
@@ -141,5 +141,40 @@
(insert "\n"))
(goto-char (point-min)))
+(defun memory-usage-find-large-variables ()
+ "Find variables whose printed representation takes over 100KB."
+ (interactive)
+ (let ((min-size (* 100 1024)))
+ (pop-to-buffer "*Memory Explorer*")
+ (delete-region (point-min) (point-max))
+ ;; First find large global variables.
+ (mapatoms
+ (lambda (sym)
+ (let ((size (or (and (boundp sym)
+ (length (prin1-to-string (symbol-value sym))))
+ 0)))
+ (when (> size min-size)
+ (insert (format "%d\tGlobal\t%s\n"
+ size
+ (symbol-name sym)))))))
+ ;; Second find large buffer-local variables.
+ (mapc
+ (lambda (buffer)
+ (let ((holder ""))
+ (with-current-buffer buffer
+ (mapc
+ (lambda (var-cons)
+ (let ((size (or (and (consp var-cons)
+ (length (prin1-to-string (cdr var-cons))))
+ 0)))
+ (if (> size min-size)
+ (setq holder (format "%d\t%s\t%s\n"
+ size (buffer-name buffer)
+ (symbol-name (car var-cons)))))))
+ (buffer-local-variables)))
+ (insert holder)))
+ (buffer-list))
+ (sort-numeric-fields 1 (point-min) (point-max))))
+
(provide 'memory-usage)
;;; 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 <=
- [elpa] externals/memory-usage 1351de6 5/9: * memory-usage.el (memory-usage-format): New function., Stefan Monnier, 2020/12/01
- [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