24 lines
781 B
Racket
24 lines
781 B
Racket
#lang racket/base
|
|
(require racket/format)
|
|
(provide (all-defined-out))
|
|
|
|
(define-logger macro-stepper)
|
|
|
|
(define (log-macro-stepper-time task msecs)
|
|
(log-macro-stepper-debug
|
|
(format "time for ~a: ~ams" task (~r msecs #:precision 0))))
|
|
|
|
(define-syntax-rule (with-log-time task body ...)
|
|
(let ([time1 (current-inexact-milliseconds)])
|
|
(begin0 (begin body ...)
|
|
(let ([time2 (current-inexact-milliseconds)])
|
|
(log-macro-stepper-time task (- time2 time1))))))
|
|
|
|
(define-syntax-rule (splicing-with-log-time task body ...)
|
|
(begin (define time1 (current-inexact-milliseconds))
|
|
body ...
|
|
(define time2 (current-inexact-milliseconds))
|
|
(define-values ()
|
|
(begin0 (values)
|
|
(log-macro-stepper-time task (- time2 time1))))))
|