2012-04-21 2 views
0

Как я могу оценить производительность частей кода (R6RS)?Оценить производительность на схеме

Мне нужна процедура вроде: (time (oper args)) или (time oper args).

Я красная дискуссия here, но это не работает для меня. Нужно ли мне импортировать какой-либо модуль/библиотеку?

Спасибо.

+0

Вы бы получить более полезные ответы, если вы заявили, что точный тип схемы вы использовали в вашем вопрос, а не догадываться. – erjiang

+0

Хорошо, вы правы. Извиняюсь. – Aslan986

ответ

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

2

Какая схема вы используете? time, по-видимому, является стандартной функцией схемы, поэтому, если он не работает, вы можете использовать суб-парную реализацию или делать что-то неправильно при вызове.

Можете ли вы описать, что вы пробовали (вставляете соответствующие фрагменты кода)?

+0

Я использую r6rs в DrRacket. Если я попытаюсь выполнить: '(time (+ 1 2))' Я получаю сообщение об ошибке с идентификатором перед его определением: time'. В начале я импортирую модуль '(import (rnrs) (rnrs mutable-pairs (6))). Нужна ли мне библиотека? – Aslan986

+0

Согласно документам racket, он предоставляется в 'racket/base'. Я думаю, это означает, что он должен быть автоматически импортирован, но вам может понадобиться использовать '#lang racket'. – Inaimathi

+0

Да, я знаю, что могу сделать это в ракетке, но мне нужно сделать это в Scheme R6RS – Aslan986

1

Можете ли вы использовать другой язык? это работает для меня, при условии, что вы выбрали опцию «использовать язык, объявленный в источнике» в DrRacket:

#lang racket 
(time (+ 1 1)) 

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

Спасибо, что ответили. Это тоже работает для меня, но я изучаю «стандартную» схему r6rs, поэтому я не могу изменить язык :) – Aslan986

+1

Почему downvote? OP hadn 'указал в вопросе, что он может использовать только R6RS –

Смежные вопросы