根据SICP 第 1.2.6 节 http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.6,练习 1.22:
大多数 Lisp 实现都包含一个称为运行时的原语,它返回一个整数,指定系统已运行的时间量(例如,以微秒为单位测量)。
我在用着DrScheme http://download.plt-scheme.org/drscheme/,其中运行时似乎不可用,所以我正在寻找一个好的替代品。我在 PLT-Scheme Reference 中发现有一个当前毫秒 http://docs.plt-scheme.org/reference/time.html#%28def._%28%28quote._~23~25kernel%29._current-milliseconds%29%29原始。有谁知道Scheme中是否有分辨率更好的计时器?
current-milliseconds https://docs.racket-lang.org/reference/time.html?q=current-mil#%28def._%28%28quote._%7E23%7E25kernel%29._current-milliseconds%29%29是一个从系统返回当前毫秒计数的函数,但它可能会减少。current-inexact-milliseconds https://docs.racket-lang.org/reference/time.html?q=current-mil#%28def._%28%28quote._%7E23%7E25kernel%29._current-inexact-milliseconds%29%29类似,但返回一个保证增加的浮点数。
您还可以在该页面上找到一堆类似的函数,但如果您需要的只是对某个函数进行计时,那么只需使用 (time https://docs.racket-lang.org/reference/time.html?q=time#%28form._%28%28lib._racket%2Fprivate%2Fmore-scheme..rkt%29._time%29%29 expr)并且它将打印出计算表达式所花费的时间。
与此相关的另一件事是profiler https://docs.racket-lang.org/profile/index.html,以防您需要对代码进行更详细的分析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)