From 704b2c3c56a9900c5f71ca1f08d7744515ab95aa Mon Sep 17 00:00:00 2001 From: Laurence Warne Date: Sun, 13 Nov 2022 19:53:17 +0000 Subject: [PATCH] Make vsize and rss human readable in proced buffers * lisp/proced.el (proced-format-memory): new function (proced-grammar-alist): use proced-format-memory to format vsize and rss --- lisp/proced.el | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lisp/proced.el b/lisp/proced.el index a774f2dd1e..4107744bbd 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -140,8 +140,8 @@ proced-grammar-alist (nice "Ni" "%3d" 3 proced-< t (nice pid) (t t nil)) (thcount "THCount" "%d" right proced-< t (thcount pid) (nil t t)) (start "Start" proced-format-start 6 proced-time-lessp nil (start pid) (t t nil)) - (vsize "VSize" "%d" right proced-< t (vsize pid) (nil t t)) - (rss "RSS" "%d" right proced-< t (rss pid) (nil t t)) + (vsize "VSize" proced-format-memory right proced-< t (vsize pid) (nil t t)) + (rss "RSS" proced-format-memory right proced-< t (rss pid) (nil t t)) (etime "ETime" proced-format-time right proced-time-lessp t (etime pid) (nil t t)) (pcpu "%CPU" "%.1f" right proced-< t (pcpu pid) (nil t t)) (pmem "%Mem" "%.1f" right proced-< t (pmem pid) (nil t t)) @@ -1425,6 +1425,16 @@ proced-format-args Replace newline characters by \"^J\" (two characters)." (string-replace "\n" "^J" args)) +(defun proced-format-memory (kilobytes) + "Format KILOBYTES in a human readable format." + (let* ((mb 1000) + (gb (* 1000 mb))) + (cond ((< kilobytes 100) (format "%.1fK" kilobytes)) + ((< kilobytes mb) (format "%dK" kilobytes)) + ((< kilobytes (* 100 mb)) (format "%.1fM" (/ kilobytes (float mb)))) + ((< kilobytes gb) (format "%dM" (/ kilobytes mb))) + (t (format "%.1fG" (/ kilobytes (float gb))))))) + (defun proced-format (process-alist format) "Display PROCESS-ALIST using FORMAT." (if (symbolp format) -- 2.30.2