racket/pkgs/racket-benchmarks/tests/racket/benchmarks/common/guile-prelude.sch
Matthew Flatt 2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00

30 lines
809 B
Scheme

(use-syntax (ice-9 syncase))
(define (msecs v)
(quotient (* v 1000) internal-time-units-per-second))
(define (time* thunk)
(let ((start (times))
(start-gc (gc-run-time)))
(let ((v (thunk)))
(let ((end (times))
(end-gc (gc-run-time)))
(display "user: ")
(display (msecs (- (tms:utime end) (tms:utime start))))
(display " system: ")
(display (msecs (- (tms:stime end) (tms:stime start))))
(display " real: ")
(display (msecs (- (tms:clock end) (tms:clock start))))
(display " gc: ")
(display (msecs (- end-gc start-gc)))
(newline)))))
(define-syntax time
(syntax-rules ()
((_ expr) (time* (lambda () expr)))))
(define bitwise-and logand)
(define bitwise-ior logior)
(define bitwise-not lognot)