【发布时间】:2011-08-20 19:18:44
【问题描述】:
我正在尝试将选项“消息”属性添加到 Clojure 时间宏。基本上我想在时间输出中添加一个可选的自定义消息。我试图在我的程序中找到一个瓶颈,在时间输出中附加一些描述性消息会非常有帮助。
我尝试了以下方法:
;optional argument
(defmacro time
"Evaluates expr and prints the time it took. Returns the value of
expr."
{:added "1.0"}
[expr & msg]
`(let [start# (. System (nanoTime))
ret# ~expr]
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs. " (first ~msg)))
ret#))
和
(defmacro time
"Evaluates expr and prints the time it took. Returns the value of
expr."
{:added "1.0"}
([expr] (time expr ""))
([expr msg]
`(let [start# (. System (nanoTime))
ret# ~expr]
(prn (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start#)) 1000000.0) " msecs. " ~msg))
ret#)))
两者都抛出异常。我该如何完成这项工作?
【问题讨论】: