在Scheme 中是否有相当于Lisp 的“运行时”原语?
题
根据 SICP 第 1.2.6 节, ,练习 1.22:
大多数 Lisp 实现都包含一个称为运行时的原语,它返回一个整数,指定系统已运行的时间量(例如,以微秒为单位测量)。
我在用着 博士计划, ,其中运行时似乎不可用,所以我正在寻找一个好的替代品。我在 PLT-Scheme Reference 中发现有一个 当前毫秒 原始。有谁知道Scheme中是否有分辨率更好的计时器?
解决方案
current-milliseconds
是一个从系统返回当前毫秒计数的函数,但它可能会减少。 current-inexact-milliseconds
类似,但返回一个保证增加的浮点数。
您还可以在该页面上找到一堆类似的函数,但如果您需要的只是对某个函数进行计时,那么只需使用 (time
表达式)并且它将打印出计算表达式所花费的时间。
与此相关的另一件事是 分析器, ,以防您需要对代码进行更详细的分析。
其他提示
我也碰到这个问题,今天就来了。我使用DrRacket,因为它似乎已经取代DrScheme。虽然这是一个古老的线程,我加入了我的发现对于任何新的跨越谁这个线程绊倒。
使用如R5RS所选语言,加以下程序之前两行,使其工作
(#%require (only racket/base current-milliseconds))
(define (runtime) (current-milliseconds))
不隶属于 StackOverflow