【问题标题】:Methods "runtime" and "system-clock" always return 0.1方法“runtime”和“system-clock”总是返回 0.1
【发布时间】:2017-07-13 20:43:03
【问题描述】:

根据手册,方法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

【问题讨论】:

    标签: scheme lisp mit-scheme


    【解决方案1】:

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

    下面的代码需要将近 2 秒才能完成,它确实表明它一直在为 1.49s 工作。

    (begin
      (define (fib n)
        (if (< n 2)
            n
            (+ (fib (- n 1)) (fib (- n 2)))))
    
      (fib 30)
      (system-clock))
    ; ==> 1.49
    

    【讨论】:

    • 嗯,我将“进程时间”理解为“自系统进程启动以来经过的时间”而不是“处理时间”。感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多