emacs-devel
[Top][All Lists]
Advanced

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

Re: Load average of 0


From: Pavel Janík
Subject: Re: Load average of 0
Date: Thu, 20 Dec 2001 17:50:27 +0100
User-agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1.50 (i386-suse-linux-gnu)

   From: "Stefan Monnier" <address@hidden>
   Date: Tue, 18 Dec 2001 10:44:17 -0500

   > Why not save space when it's 0.01 as well ?  Or should that be 0.02 ?
   > Maybe we can simply define a load-average-threshold below which
   > it's not displayed.  This way Pavel can set the threshold to be
   > below 0.00...

Here it is. It contains also my patch to allow cycling through 1, 5 and 15
minutes load-average. I do not feel as an authority for the default value
of `display-time-load-average-threshold' so please feel free to suggest
better values. I think that something like 0.1 is good.

--- time.el.~1.70.~     Mon Oct 29 20:06:53 2001
+++ time.el     Thu Dec 20 17:47:59 2001
@@ -51,6 +51,20 @@
                 (function))
   :group 'display-time)
 
+(defcustom display-time-default-load-average 0
+  "*Which load-average value will be shown in the mode-line.
+Almost every system can provide values of load for past 1 minute, past 5 or
+past 15 minutes. The default is to display 1 minute load average."
+  :type '(choice (const :tag "1 minute load" 0)
+                (const :tag "5 minutes load" 1)
+                (const :tag "15 minutes load" 2))
+  :group 'display-time)
+
+(defvar display-time-load-average display-time-default-load-average)
+
+(defcustom display-time-load-average-threshold 0.5
+  "*Load-average values below this value won't be shown in the mode-line.")
+
 ;;;###autoload
 (defcustom display-time-day-and-date nil "\
 *Non-nil means \\[display-time] should display day and date as well as time."
@@ -191,6 +205,13 @@
                          display-time-interval)
          (timer-activate timer)))))
 
+(defun display-time-next-load-average ()
+  (interactive)
+  (if (= 3 (setq display-time-load-average (1+ display-time-load-average)))
+      (setq display-time-load-average 0))
+  (display-time-update)
+  (sit-for 0))
+
 ;; Update the display-time info for the mode line
 ;; but don't redisplay right now.  This is used for
 ;; things like Rmail `g' that want to force an update
@@ -199,13 +220,24 @@
   (let* ((now (current-time))
         (time (current-time-string now))
          (load (condition-case ()
-                   (if (zerop (car (load-average))) ""
+                  ;; Do not show values less than
+                  ;; `display-time-load-average-threshold'.
+                   (if (> (* display-time-load-average-threshold 100)
+                          (nth display-time-load-average (load-average)))
+                      ""
                     ;; The load average number is mysterious, so
-                    ;; propvide some help.
-                     (let ((str (format " %03d" (car (load-average)))))
+                    ;; provide some help.
+                     (let ((str (format " %03d" (nth display-time-load-average 
(load-average)))))
                       (propertize
                        (concat (substring str 0 -2) "." (substring str -2))
-                       'help-echo "System load average")))
+                       'local-map (make-mode-line-mouse-map 'mouse-2 
+                                                            
'display-time-next-load-average)
+                       'help-echo (concat "System load average for past "
+                                          (if (= 0 display-time-load-average)
+                                              "1 minute"
+                                            (if (= 1 display-time-load-average)
+                                                "5 minutes"
+                                              "15 minutes")) "; mouse-2: next" 
))))
                  (error "")))
          (mail-spool-file (or display-time-mail-file
                               (getenv "MAIL")

-- 
Pavel Janík

panic("kmem_cache_init(): Offsets are wrong - I've been messed with!");
                  -- 2.2.16 mm/slab.c



reply via email to

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