X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftime.lisp;h=8cf2e00c61c95e3eee6e90031f69de1d2e9f9093;hb=5b6e02e435453eddace1a36d30aaf04d6ebd2f1d;hp=b572f36d430ea571bd9a856d40dd11325a3df3a8;hpb=0c36486ca7b0e7bac8ea09743cd2cb4aae851923;p=sbcl.git diff --git a/src/code/time.lisp b/src/code/time.lisp index b572f36..8cf2e00 100644 --- a/src/code/time.lisp +++ b/src/code/time.lisp @@ -95,9 +95,7 @@ Includes both \"system\" and \"user\" time." #!+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 @@ -259,13 +257,15 @@ format." (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* @@ -294,7 +294,7 @@ format." 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 @@ -500,8 +500,10 @@ EXPERIMENTAL: Interface subject to change." (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)