#!+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
gc-run-time-ms processor-cycles eval-calls
- lambda-conversions page-faults bytes-consed
+ lambdas-converted page-faults bytes-consed
aborted)
(let ((total-run-time-us (+ user-run-time-us system-run-time-us)))
(format *trace-output*
100.0
(float (* 100 (/ (round total-run-time-us 1000) real-time-ms))))
eval-calls
- lambda-conversions
+ lambdas-converted
processor-cycles
page-faults
bytes-consed
(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)