help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: is there a emacs lisp timing command?


From: thierry . volpiatto
Subject: Re: is there a emacs lisp timing command?
Date: Tue, 24 Mar 2009 07:35:45 +0100
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.91 (gnu/linux)

And this can help also:(adapt for your case with traverselisp code).


(defun current-human-time ()
  (let* ((cur-time (decode-time (current-time)))
         (h (int-to-string (nth 2 cur-time)))
         (m (int-to-string (nth 1 cur-time)))
         (s (int-to-string (nth 0 cur-time))))
    (message "%s" (concat h ":" m ":" s))))

(defvar my-time nil)
(defun start-watch ()
  (setq my-time (run-with-timer 1 1 'current-human-time)))

(defun stop-watch ()
  (cancel-timer my-time)
  (setq my-time nil))

thierry.volpiatto@gmail.com writes:

> Hi, 
> have a look at traverselisp.el,
> the function `traverse-deep-rfind' have a timer.
> http://www.emacswiki.org/cgi-bin/emacs/traverselisp.el
>
> Xah Lee <xahlee@gmail.com> writes:
>
>> is there a elisp command like timing, that returns the time a function
>> took?
>>
>> while testing some performance issues, i tried to write one.
>>
>> (defun xx-timing ()
>>   "returns the timing."
>>   (interactive)
>>   (let (starttime endtime)
>>     (setq starttime (current-time))
>>
>>     ;; some function here
>>     (sleep-for 0 5)
>>
>>     (setq endtime (current-time))
>>     (message "%f" (+ (* (- (elt endtime 0)
>>                            (elt starttime 0)) 65536)
>>                      (- (elt endtime 1)
>>                         (elt starttime 1))
>>                      (* (- (elt endtime 2)
>>                            (elt starttime 2)) 0.001)))
>>     ))
>>
>> but after about 20 minutes on this, i gave up. It seems to me, when
>> microseconds is involved (returned by current-time), the result is
>> weired. I don't see any logical problem in my code, but the above code
>> is obvious wrong, often returning results some 70 seconds extra
>> whenever microseconds is involved.
>>
>> anyone has written a timing command somewhere?
>>
>> This is on:
>> GNU Emacs 22.2.1 (powerpc-apple-darwin8.11.0, Carbon Version 1.6.0) of
>> 2008-04-05 on g5.tokyo.stp.isas.jaxa.jp
>>
>> PowerPC G5, osx 10.4.11.
>>
>>   Xah
>> ∑ http://xahlee.org/
>>
>> ☄
>>
>>

-- 
A + Thierry Volpiatto
Location: Saint-Cyr-Sur-Mer - France





reply via email to

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