(time(get_report))
給我「已用時間32038毫秒」。但我想要秒,而不是毫秒。我怎樣才能在Clojure中實現這一點?以秒爲單位的打印執行時間功能?
我希望它打印像「報告花了32秒」。
上我現在該怎麼把它更新:
(defmacro time
"Evaluates expr and prints the time it took. Returns the value of
expr."
{:added "1.0"}
[expr]
`(let [start# (. System (nanoTime))
ret# ~expr]
(prn (str "Report print time: " (/ (double (- (. System (nanoTime)) start#)) 1000000000.0) " secs"))))
(time(get_report))
這是我gather_report功能:
(defn gather_report []
(def list_of_isbns (split_isbns "src/clj_amazon/isbn_list.txt"))
(get_title_and_rank_for_all_isbns list_of_isbns)
)
只需創建一個自定義版本的宏。查看來源並查看他們是如何做到的。我創建了我自己的版本,可以返回時間而不是打印它。花費10秒鐘。 – Carcigenicate
並且不要在函數中使用'def'!看到我的答案,看看爲什麼! – Carcigenicate