方法“runtime”和“system-clock”总是返回0.1

时间:2017-07-13 20:43:04

标签: scheme lisp mit-scheme

根据手册,方法runtimesystem-clock返回:

  

自Scheme以来已过去的处理时间(以秒为单位)   启动。

但是,在REPL中调用它们总是返回值0.1:

1 ]=> (runtime)
;Value: .01
1 ]=> (system-clock)
;Value: .01

这里有什么想法吗?

mit-scheme版本:

Release 9.1.1 || Microcode 15.3 || Runtime 15.7 || SF 4.41 || LIAR/x86-64 4.118

1 个答案:

答案 0 :(得分:2)

这些程序不会为您提供自启动方案以来已经过的实时时间,但处理方案代码所需的时间,不包括系统调用。因此,您已经评估了两个表达式,这些表达式花费的时间非常短,并且您不会包含查看提示或编写代码的时间,因为它在等待输入行时不会处理任何内容。

下面的代码需要将近2秒才能完成,而且确实显示它已经在1.49上运行。

(begin
  (define (fib n)
    (if (< n 2)
        n
        (+ (fib (- n 1)) (fib (- n 2)))))

  (fib 30)
  (system-clock))
; ==> 1.49