Changeset 47 for branches/home


Ignore:
Timestamp:
01/20/07 21:18:31 (18 years ago)
Author:
psmith
Message:

Added high res timer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/home/psmith/restructure/src/compat/utils.lisp ΒΆ

    r44 r47  
    3737(defun get-readable-time ( &optional (time (get-universal-time)))
    3838  (get-readable "~A/~2,'0d/~2,'0d ~2,'0d:~2,'0d:~2,'0d" time))
     39
     40
     41;;High res timer
     42
     43(let ((internal-base (get-internal-real-time))
     44      (universal-base (get-universal-time)))
     45;
     46; Gets the time including milliseconds by using a base time from universal time and
     47; tracking high res passing of time using the get-internal-real-time
     48; Probably not that accurate in absolute terms i.e. may drift from the base,
     49; but good enough for performance timings
     50;
     51  (defun get-universal-high-res()
     52    (let ((current-internal (get-internal-real-time)))
     53      (+ universal-base (/ (- current-internal internal-base) internal-time-units-per-second) )))
     54
     55  (defun get-readable-high-res()
     56    (let ((estimated-universal-float (get-universal-high-res)))
     57      (multiple-value-bind (estimated-universal estimated-universal-rem) (floor estimated-universal-float)
     58        (format nil "~A.~3,'0d"(get-readable-time estimated-universal) (* 1000 estimated-universal-rem)))))
     59 
     60  )
Note: See TracChangeset for help on using the changeset viewer.