;;; number of seconds since 1970-01-01
;;; I'm obliged to Erik Naggum's "Long, Painful History of Time" paper
-;;; <http://heim.ifi.uio.no/~enag/lugm-time.html> for the choice of epoch
-;;; here. By starting the year in March, we avoid having to test the month
-;;; whenever deciding whether to account for a leap day. 2000 is especially
-;;; special, because it's disvisible by 400, hence the start of a 400 year
-;;; leap year cycle
+;;; <http://naggum.no/lugm-time.html> for the choice of epoch here.
+;;; By starting the year in March, we avoid having to test the month
+;;; whenever deciding whether to account for a leap day. 2000 is
+;;; especially special, because it's divisible by 400, hence the start
+;;; of a 400 year leap year cycle
;;; If a universal-time is after time_t runs out, we find its offset
;;; from 1st March of whichever year it falls in, then add that to
#!+sb-doc
"Return a single integer for the current time of day in universal time
format."
- (multiple-value-bind (res secs) (sb!unix:unix-gettimeofday)
- (declare (ignore res))
- (+ secs unix-to-universal-time)))
+ (+ (get-time-of-day) unix-to-universal-time))
(defun get-decoded-time ()
#!+sb-doc
(defvar *gc-run-time* 0
#!+sb-doc
- "the total CPU time spent doing garbage collection (as reported by
- GET-INTERNAL-RUN-TIME)")
+ "Total CPU time spent doing garbage collection (as reported by
+GET-INTERNAL-RUN-TIME.) Initialized to zero on startup. It is safe to bind
+this to zero in order to measure GC time inside a certain section of code, but
+doing so may interfere with results reported by eg. TIME.")
(declaim (type index *gc-run-time*))
(defun print-time (&key real-time-ms user-run-time-us system-run-time-us
(note :aborted aborted #'not)
(note :bytes-consed (max (- new-bytes-consed old-bytes-consed) 0))
(note :page-faults page-faults #'zerop)
- (note :processor-cycles cycles #'zerop)
- (note :lambdas-converted sb!c::*lambda-conversions* #'zerop)
+ ;; cycle counting isn't supported everywhere.
+ (when cycles
+ (note :processor-cycles cycles #'zerop)
+ (note :lambdas-converted sb!c::*lambda-conversions* #'zerop))
(note :eval-calls *eval-calls* #'zerop)
(note :gc-run-time-ms gc-internal-run-time)
(note :system-run-time-us system-run-time)