]> git.eshelyaron.com Git - emacs.git/commitdiff
profiler.el tweaks
authorGlenn Morris <rgm@gnu.org>
Sun, 20 Jan 2013 02:39:59 +0000 (18:39 -0800)
committerGlenn Morris <rgm@gnu.org>
Sun, 20 Jan 2013 02:39:59 +0000 (18:39 -0800)
* profiler.el (profiler-running-p): New function.
(profiler-cpu-profile): Use profiler-running-p.
(profiler-report-mode-map): Add some more menu entries.

lisp/ChangeLog
lisp/profiler.el

index bcab1e746a589ffdd9f347f28185f6241f87f6d8..02c79ef19202dea22681d918044f39e099082a1e 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-20  Glenn Morris  <rgm@gnu.org>
+
+       * profiler.el (profiler-running-p): New function.
+       (profiler-cpu-profile): Use profiler-running-p.
+       (profiler-report-mode-map): Add some more menu entries.
+
 2013-01-19  Glenn Morris  <rgm@gnu.org>
 
        * mail/unrmail.el (unrmail): Do not mangle the mbox From line;
index 2a4a90139866edb26d7931233a628f6ddf4a506f..9c73fc6e590a9a6e969e1cb4f9dd16f54df9f9f6 100644 (file)
@@ -200,11 +200,18 @@ function name of a function itself."
     (goto-char (point-min))
     (read (current-buffer))))
 
+(defun profiler-running-p (&optional mode)
+  "Return non-nil if the profiler is running.
+Optional argument MODE means only check for the specified mode (cpu or mem)."
+  (cond ((eq mode 'cpu) (and (fboundp 'profiler-cpu-running-p)
+                             (profiler-cpu-running-p)))
+        ((eq mode 'mem) (profiler-memory-running-p))
+        (t (or (profiler-running-p 'cpu)
+               (profiler-running-p 'mem)))))
+
 (defun profiler-cpu-profile ()
   "Return CPU profile."
-  (when (and (fboundp 'profiler-cpu-running-p)
-             (fboundp 'profiler-cpu-log)
-             (profiler-cpu-running-p))
+  (when (profiler-running-p 'cpu)
     (profiler-make-profile
      :type 'cpu
      :timestamp (current-time)
@@ -457,7 +464,12 @@ RET: expand or collapse"))
         ["Compare Profile..." profiler-report-compare-profile :active t
          :help "Compare current profile with another"]
         ["Write Profile..." profiler-report-write-profile :active t
-         :help "Write current profile to a file"]))
+         :help "Write current profile to a file"]
+        "--"
+        ["Stop Profiler" profiler-stop :active (profiler-running-p)
+         :help "Stop profiling"]
+        ["New Report" profiler-report :active (profiler-running-p)
+         :help "Make a new report"]))
       map)
   "Keymap for `profiler-report-mode'.")