[英]Timing function in Racket
Scheme中計時功能的語法令人困惑。 如果我想檢查CPU周期,我應該可以將我的整個代碼包裝在(時間碼)中,它應該產生這樣的代碼嗎? 每當我嘗試將其包裝在(時間)中時,都會收到錯誤消息。
lambda: no expression after a sequence of internal definitions in: lambda
在Scheme中運行程序時,我還需要檢查CPU使用率的哪些其他選擇?
不幸的是,如果時間主體中的最后一個形式不是表達式,那么時間似乎不起作用。 幸運的是, (void)
是一個(相對)自由的表達式。 1您可以將其添加為時間的最后一個表達式,從而為您提供:
(time
.... your code here ....
(void))
因此,例如,以下代碼將為您提供如下結果:
> (time
(define x
(for/list ([i (in-range 1000000)])
i))
(void))
cpu time: 148 real time: 149 gc time: 124
1與CS和時間安排中的任何內容一樣,此處是否要考慮空缺也取決於。 但在許多情況下,單次調用void應該沒問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.