2012-04-21 68 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