2012-04-21 36 views
0

如何评估计划(R6RS)代码段的性能?评估计划中的表现

我需要一些程序,如:(time (oper args))(time oper args)

我红色的讨论here但它似乎并不适合我。我是否需要导入一些模块/库?

谢谢。

+0

如果你说你正在使用什么方案的确切类型,你会得到更多有用的答案你问题,而不是让我们猜测。 – erjiang 2012-04-22 07:37:21

+0

好吧,你是对的。道歉。 – Aslan986 2012-04-22 11:46:43

回答

3

time工作正常。

$ mzscheme 
Welcome to Racket v5.2.1. 
> (time (/ 1 2)) 
cpu time: 0 real time: 0 gc time: 0 
1/2 
> 
+0

你好保罗,谢谢你的回答。你正在使用'#lang racket'吗?还是你使用标准模式语言?如果是,哪个版本? 'R5RS'或'R6RS'? – Aslan986 2012-04-21 15:30:36

2

您正在使用哪种方案? time似乎是一个标准的方案功能,所以如果它不起作用,你可能会使用一个sub-par实现或在调用它时做错了事。

你能描述你试过的东西吗(粘贴适当的代码片段)?

+0

我在DrRacket中使用r6rs。如果我尝试执行:'(time(+ 1 2))',我会在定义之前获得错误'对标识符的引用:time'。在开始我导入模块'(import(rnrs)(rnrs mutable-pairs(6)))''。我需要更多的图书馆吗? – Aslan986 2012-04-21 12:52:51

+0

根据球拍文件,它在'racket/base'中提供。我认为这意味着它应该被自动导入,但是你可能需要使用'#lang racket'。 – Inaimathi 2012-04-21 15:38:56

+0

是的,我知道我可以在球拍中做到这一点,但我需要在Scheme R6RS – Aslan986 2012-04-21 17:23:33

1

您可以使用其他语言吗?这个工作对我来说,假设你所选择的选项“使用源文件中声明的语言”,在DrRacket:

#lang racket 
(time (+ 1 1)) 

> cpu time: 0 real time: 0 gc time: 0 
> 2 
+0

谢谢你的回答。这也适用于我,但我正在研究“标准”计划r6rs,所以我不能改变语言:) – Aslan986 2012-04-21 15:27:41

+1

为什么downvote? OP没有在问题中指出他只能使用R6RS – 2012-04-21 17:24:47