SICP, Схема, DRRARCET Вопрос: Таймер / Profiler Функция?
Вопрос
В настоящее время я пытаюсь сделать упражнение 1.22, что нуждается в функции, называемой Runtime, которая возвращает количество миллисекундов, использует систему. Однако моя среда (R5RS), похоже, не имеет этого. У него нет времени, текущих миллисекундов, токосветно-миллисекунды и т. Д.
Какую функцию у меня есть доступ, чтобы профилировать мою функцию? Какие функции возвращают количество миллисекундов, микросекунд и т. Д., которые прошли? Я бы, конечно, предпочитаю максимальный прецизионный таймер.
Решение
Вероятно, лучшее, что нужно сделать, это переключить язык в Drracket, чтобы «использовать язык, объявленный в источнике», и начните свой файл с #lang racket
. Отказ Затем функции нравятся current-seconds
И друзья будут доступны.
В качестве альтернативы вы можете использовать библиотеку профилирования, доступную через (require profile)
и документировано здесь.
Наконец, вы можете посмотреть на Neil Van Dyke's Библиотека SICP для Drracket.
Другие советы
я использовал Текущие неточные миллисекуды Когда я сделал это упражнение. Осторожно, спойлеры: Вы можете увидеть мое решение в моем блоге в SICP Упражнение 1.22: Timed Prime Test.
Кстати, я только решил эту проблему после подобного вопроса, Есть ли эквивалентное примитивному времени «время выполнения» Lisp?