unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
  • * get-internal-run-time
           [not found]   ` <E1BI6nw-0005F4-Hl@fencepost.gnu.org>
           [not found]     ` <85smepfzqo.fsf@junk.nocrew.org>
    @ 2004-05-01  7:01     ` Lars Brinkhoff
      2004-05-01 18:53       ` get-internal-run-time Lars Brinkhoff
      2004-10-28 16:30       ` get-internal-run-time Lars Brinkhoff
      1 sibling, 2 replies; 86+ messages in thread
    From: Lars Brinkhoff @ 2004-05-01  7:01 UTC (permalink / raw)
    
    
    Richard Stallman <rms@gnu.org> writes:
    > [Lars Brinkhoff wrote:]
    >     [I wish there were a] function that returns the amount of
    >     processor time used [by Emacs], for implementing [the Common
    >     Lisp function] get-internal-run-time.
    > 
    >     ANSI CL says:
    > 	    The intent is that the difference between the values of
    > 	    two calls to this function be the amount of time between
    > 	    the two calls during which computational effort was
    > 	    expended on behalf of the executing program.
    >     I haven't found a suitable function for this in Emacs.
    > 
    > Would you like to contribute such a function?
    
    Here's a first attempt, submitted for comment.
    
    
    2004-05-01  Lars Brinkhoff  <lars@nocrew.org>
    
    	* editfns.c (Fget_internal_run_time): New function.
    	(syms_of_data): Defsubr it.
    
    Index: editfns.c
    ===================================================================
    RCS file: /cvsroot/emacs/emacs/src/editfns.c,v
    retrieving revision 1.372
    diff -c -r1.372 editfns.c
    *** editfns.c	27 Apr 2004 13:28:38 -0000	1.372
    --- editfns.c	1 May 2004 06:57:46 -0000
    ***************
    *** 39,44 ****
    --- 39,48 ----
      #include <stdio.h>
      #endif
      
    + #ifdef HAVE_SYS_RESOURCE_H
    + #include <sys/resource.h>
    + #endif
    + 
      #include <ctype.h>
      
      #include "lisp.h"
    ***************
    *** 1375,1380 ****
    --- 1379,1425 ----
      
        return Flist (3, result);
      }
    + 
    + DEFUN ("get-internal-run-time", Fget_internal_run_time, Sget_internal_run_time,
    +        0, 0, 0,
    +        doc: /* Return the current run time used by Emacs.
    + The time is returned as a list of three integers.  The first has the
    + most significant 16 bits of the seconds, while the second has the
    + least significant 16 bits.  The third integer gives the microsecond
    + count.
    + 
    + On systems that can't determine the run time, get-internal-run-time
    + does the same thing as current-time.  The microsecond count is zero on
    + systems that do not provide resolution finer than a second.  */)
    +      ()
    + {
    + #ifdef HAVE_SYS_RESOURCE_H
    +   struct rusage usage;
    +   Lisp_Object result[3];
    +   int secs, usecs;
    + 
    +   if (getrusage (RUSAGE_SELF, &usage) < 0)
    +     /* This shouldn't happen.  What action is appropriate?  */
    +     Fsignal (Qerror, Qnil);
    + 
    +   /* Sum up user time and system time.  */
    +   secs = usage.ru_utime.tv_sec + usage.ru_stime.tv_sec;
    +   usecs = usage.ru_utime.tv_usec + usage.ru_stime.tv_usec;
    +   if (usecs >= 1000000)
    +     {
    +       usecs -= 1000000;
    +       secs++;
    +     }
    + 
    +   XSETINT (result[0], (secs >> 16) & 0xffff);
    +   XSETINT (result[1], (secs >> 0)  & 0xffff);
    +   XSETINT (result[2], usecs);
    + 
    +   return Flist (3, result);
    + #else
    +   return Fcurrent_time ();
    + #endif
    + }
      \f
      
      int
    ***************
    *** 4280,4285 ****
    --- 4325,4331 ----
        defsubr (&Suser_full_name);
        defsubr (&Semacs_pid);
        defsubr (&Scurrent_time);
    +   defsubr (&Sget_internal_run_time);
        defsubr (&Sformat_time_string);
        defsubr (&Sfloat_time);
        defsubr (&Sdecode_time);
    
    ^ permalink raw reply	[flat|nested] 86+ messages in thread

  • end of thread, other threads:[~2004-10-28 16:30 UTC | newest]
    
    Thread overview: 86+ messages (download: mbox.gz / follow: Atom feed)
    -- links below jump to the message on this page --
         [not found] <E1BH4Nx-000730-Dq@fencepost.gnu.org>
         [not found] ` <85k7036eqr.fsf@junk.nocrew.org>
         [not found]   ` <E1BI6nw-0005F4-Hl@fencepost.gnu.org>
         [not found]     ` <85smepfzqo.fsf@junk.nocrew.org>
         [not found]       ` <E1BIm46-0001Ha-5A@fencepost.gnu.org>
    2004-04-28 10:43         ` User-reserved element in byte code vectors (was: Emacs Common Lisp) Lars Brinkhoff
    2004-04-28 13:48           ` Stefan Monnier
    2004-04-28 15:08             ` User-reserved element in byte code vectors Lars Brinkhoff
    2004-04-28 15:38               ` Stefan Monnier
    2004-04-28 16:51                 ` Lars Brinkhoff
    2004-04-28 17:12                   ` Stefan Monnier
    2004-05-02  7:59                 ` Lars Brinkhoff
    2004-05-02  9:43                   ` Miles Bader
    2004-05-02 16:02                     ` Lars Brinkhoff
    2004-05-03 14:03                       ` Richard Stallman
    2004-05-03 19:57                         ` Miles Bader
    2004-05-05  5:23                           ` Lars Brinkhoff
    2004-05-05 20:21                             ` Richard Stallman
    2004-05-06  3:55                               ` Miles Bader
    2004-05-06  4:56                                 ` Miles Bader
    2004-05-06 11:48                                   ` Richard Stallman
    2004-05-14 17:53                                     ` Miles Bader
    2004-05-14 18:27                                       ` Stefan Monnier
    2004-05-14 19:50                                         ` Lars Brinkhoff
    2004-05-14 22:03                                           ` Miles Bader
    2004-05-14 22:14                                             ` Stefan Monnier
    2004-05-15 18:34                                       ` Richard Stallman
    2004-05-15 23:10                                         ` Miles Bader
    2004-05-17 11:04                                           ` Richard Stallman
    2004-05-17 11:28                                             ` Lars Brinkhoff
    2004-05-17 16:30                                             ` Stefan Monnier
    2004-05-17 22:06                                               ` Miles Bader
    2004-05-17 22:33                                                 ` David Kastrup
    2004-05-18  1:29                                                   ` Miles Bader
    2004-05-18 13:17                                                 ` Stefan Monnier
    2004-05-18 23:45                                                   ` Miles Bader
    2004-05-19  6:28                                                     ` David Kastrup
    2004-05-19  6:37                                                       ` Miles Bader
    2004-05-19 19:00                                                     ` Richard Stallman
    2004-05-19 22:32                                                       ` Function vectors: +funvec-20030520-0-c.patch Miles Bader
    2004-05-19  7:34                                                   ` User-reserved element in byte code vectors Kim F. Storm
    2004-05-19 13:45                                                   ` Richard Stallman
    2004-05-19 14:28                                                     ` Miles Bader
    2004-05-19 15:19                                                       ` Stefan Monnier
    2004-05-20  0:31                                                         ` Miles Bader
    2004-05-20 13:17                                                           ` Richard Stallman
    2004-05-21  1:28                                                             ` Miles Bader
    2004-05-22  7:31                                                               ` Richard Stallman
    2004-05-22  9:37                                                                 ` Miles Bader
    2004-05-18 14:53                                                 ` Richard Stallman
    2004-05-18 17:34                                                   ` Miles Bader
    2004-05-18 14:53                                               ` Richard Stallman
    2004-05-16 23:53                                         ` Stefan Monnier
         [not found]                                       ` <E1BP3ym-0007oy-F7@fencepost.gnu.org>
         [not found]                                         ` <20040515231754.GB20052@fencepost>
    2004-05-16  4:02                                           ` Function vectors: +funvec-20030516-0-c.patch Miles Bader
    2004-05-16 12:28                                             ` Function vectors: +funvec-20030516-1-c.patch Miles Bader
    2004-05-16 23:58                                             ` Function vectors: +funvec-20030516-0-c.patch Stefan Monnier
    2004-05-17  0:03                                               ` Miles Bader
    2004-05-17  0:14                                                 ` Stefan Monnier
    2004-05-17  0:30                                                   ` Miles Bader
    2004-05-17 16:09                                                     ` Stefan Monnier
    2004-05-17 22:21                                                       ` Miles Bader
    2004-05-18 13:30                                                         ` Stefan Monnier
    2004-05-17 11:04                                             ` Richard Stallman
    2004-05-17 11:04                                             ` Richard Stallman
    2004-05-17 22:54                                               ` Miles Bader
    2004-05-18 14:54                                                 ` Richard Stallman
    2004-05-18  6:04                                               ` Function vectors: +funvec-20030518-0-c.patch Miles Bader
    2004-05-06  6:17                                 ` User-reserved element in byte code vectors Lars Brinkhoff
    2004-05-06 14:24                                 ` Stefan Monnier
    2004-05-06 20:39                                   ` Miles Bader
    2004-05-02 16:37                   ` Stefan Monnier
    2004-05-02 18:59                     ` Lars Brinkhoff
    2004-05-02 19:21                       ` Stefan Monnier
    2004-05-02 19:27                         ` Lars Brinkhoff
    2004-05-02 19:54                           ` Stefan Monnier
    2004-05-02 20:28                             ` Lars Brinkhoff
    2004-05-02 21:07                               ` Stefan Monnier
    2004-05-03  6:08                                 ` Lars Brinkhoff
    2004-05-02 19:52                   ` Richard Stallman
    2004-04-28 15:38           ` User-reserved element in byte code vectors (was: Emacs Common Lisp) Miles Bader
    2004-05-01  5:30             ` Lars Brinkhoff
    2004-05-01 23:58               ` Miles Bader
    2004-05-01  7:01     ` get-internal-run-time Lars Brinkhoff
    2004-05-01 18:53       ` get-internal-run-time Lars Brinkhoff
    2004-05-02 14:44         ` get-internal-run-time Eli Zaretskii
    2004-05-02 15:45           ` get-internal-run-time Lars Brinkhoff
    2004-05-02 18:41           ` get-internal-run-time Lars Brinkhoff
    2004-05-03  0:10             ` get-internal-run-time Kevin Ryde
    2004-05-03  5:38               ` get-internal-run-time Lars Brinkhoff
    2004-05-03 14:03             ` get-internal-run-time Richard Stallman
    2004-10-28 16:30       ` get-internal-run-time Lars Brinkhoff
    

    Code repositories for project(s) associated with this public inbox
    
    	https://git.savannah.gnu.org/cgit/emacs.git
    
    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).