5
Clojure 시간 매크로에 "message"옵션을 추가하려고합니다. 기본적으로 시간의 출력에 선택적 사용자 지정 메시지를 추가하려고합니다. 내 프로그램에서 병목 현상을 발견하려고 노력 중이며 시간 출력에 첨부 된 설명 메시지가 도움이 될 것입니다.매크로에 선택적 인수 추가
;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#)))
모두 던져 예외 :
나는 다음과 같은 시도했습니다. 이 작업을 어떻게 수행합니까?
그러나이 경우에 대한 디버그 메시지는 나에게 정말 도움이 될 것입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 어쩌면 일종의 래퍼 매크로일까요? 핵심 버전은 단일 표현식 만 허용합니까? – erikcw
@erikcw 네가 맞다. 나쁜 코어 버전도 단일 인수를 허용한다. 또한 선택적 인수가있는 버전을 추가했습니다. –