diff options
author | Keisuke Nishida <kxn30@po.cwru.edu> | 2001-03-17 10:01:01 +0000 |
---|---|---|
committer | Keisuke Nishida <kxn30@po.cwru.edu> | 2001-03-17 10:01:01 +0000 |
commit | 5e38caf19696cb23b6b7054811d7d4e896c9f5ff (patch) | |
tree | 960861977cff814f97457d5046f660caa6b7144a | |
parent | 656dfde1bc44990437fe814c6645a839ab5b2647 (diff) | |
download | guile-5e38caf19696cb23b6b7054811d7d4e896c9f5ff.tar.gz |
* time.scm: New file.
-rw-r--r-- | ice-9/ChangeLog | 4 | ||||
-rw-r--r-- | ice-9/time.scm | 40 |
2 files changed, 44 insertions, 0 deletions
diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index 769429847..4b63a538d 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,7 @@ +2001-03-17 Keisuke Nishida <kxn30@po.cwru.edu> + + * time.scm: New file. + 2001-03-17 Dirk Herrmann <D.Herrmann@tu-bs.de> * oldprint.scm: Removed. diff --git a/ice-9/time.scm b/ice-9/time.scm new file mode 100644 index 000000000..0be666cd5 --- /dev/null +++ b/ice-9/time.scm @@ -0,0 +1,40 @@ +;;;; Copyright (C) 2001 Free Software Foundation, Inc. +;;;; +;;;; This program is free software; you can redistribute it and/or modify +;;;; it under the terms of the GNU General Public License as published by +;;;; the Free Software Foundation; either version 2, or (at your option) +;;;; any later version. +;;;; +;;;; This program is distributed in the hope that it will be useful, +;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;;; GNU General Public License for more details. +;;;; +;;;; You should have received a copy of the GNU General Public License +;;;; along with this software; see the file COPYING. If not, write to +;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;;;; Boston, MA 02111-1307 USA +;;;; + + +(define-module (ice-9 time) + :use-module (ice-9 format) + :export (time)) + +(define-macro (time form) + (let* ((gc-start (gc-run-time)) + (tms-start (times)) + (result (eval form (interaction-environment))) + (tms-end (times)) + (gc-end (gc-run-time))) + (define (get proc start end) + (/ (- (proc end) (proc start)) internal-time-units-per-second)) + (display "clock utime stime cutime cstime gctime\n") + (format #t "~5,2F ~5,2F ~5,2F ~6,2F ~6,2F ~6,2F\n" + (get tms:clock tms-start tms-end) + (get tms:utime tms-start tms-end) + (get tms:stime tms-start tms-end) + (get tms:cutime tms-start tms-end) + (get tms:cstime tms-start tms-end) + (get id gc-start gc-end)) + result)) |