SICP, Scheme, DrRacket Вопрос: функция таймера / профилировщика? - PullRequest
4 голосов
/ 27 сентября 2010

В настоящее время я пытаюсь выполнить упражнение 1.22, для которого требуется функция runtime, которая возвращает количество миллисекунд, в течение которых работала системаОднако в моей среде (R5RS) этого, похоже, нет.Он также не имеет времени, текущих миллисекунд, текущих неточных миллисекунд и т. Д.

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

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Вероятно, лучшее, что нужно сделать, это переключить язык в DrRacket на "Использовать язык, объявленный в источнике", и начать свой файл с #lang racket.Тогда будут доступны такие функции, как current-seconds и друзья.

Кроме того, вы можете использовать библиотеку профилирования, доступную через (require profile) и задокументированную здесь .

Наконец, вы можете обратиться к библиотеке SICP Нила Ван Дейка для DrRacket .

1 голос
/ 27 сентября 2010

Я использовал ток-неточные миллисекунды , когда выполнял это упражнение. Оповещение о спойлере: Мое решение вы можете увидеть в моем блоге на Упражнение SICP 1.22: тест по времени по времени .

Кстати, я решил эту проблему только после того, как задал похожий вопрос: Есть ли эквивалент в примитиве Lisp "runtime" в Scheme?

...