gpt4 book ai didi

clojure - 如何对 Clojure 中的函数进行基准测试?

转载 作者:行者123 更新时间:2023-12-03 07:18:37 26 4
gpt4 key购买 nike

我知道我可以获得评估函数所需的时间,可以使用时间函数/宏在屏幕/标准输出上打印出来。

时间宏返回计算函数的值,这使得内联使用它非常有用。但是我想在特定情况下自动测量运行时间。

是否有一个函数可以返回某个库中耗时来帮助进行此基准测试?

最佳答案

如果只是想以编程方式捕获字符串,您可以在使用时间之前将 *out* 绑定(bind)到其他内容。

user=> (def x (with-out-str (time (+ 2 2))))
#'user/x
user=> x
"\"Elapsed time: 0.119 msecs\"\n"

如果您想要对格式进行更多控制,那么您可以使用 Java 的系统时间方法创建您自己的 time 版本,这就是 time 宏在无论如何,引擎盖:

user => (macroexpand '(time (+ 2 2)))
(let* [start__4197__auto__ (. java.lang.System (clojure.core/nanoTime))
ret__4198__auto__ (+ 2 2)]
(clojure.core/prn (clojure.core/str "Elapsed time: " (clojure.core//
(clojure.core/double
(clojure.core/- (. java.lang.System (clojure.core/nanoTime))
start__4197__auto__)) 1000000.0) " msecs"))
ret__4198__auto__)

采用该基本结构,并将对 prn 的调用替换为您喜欢的任何报告机制。

关于clojure - 如何对 Clojure 中的函数进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com