Существует ли эквивалент примитиву Lisp “во время выполнения” в Схеме?

Согласно разделу SICP 1.2.6, упражнению 1.22:

Большинство реализаций Lisp включает примитивное названное время выполнения, которое возвращает целое число, которое указывает количество времени, которое система выполняла (измеряемый, например, в микросекундах).

Я использую DrScheme, где время выполнения, кажется, не доступно, таким образом, я ищу хорошую замену. Я нашел в Ссылке PLT-схемы, что существует примитивные текущие миллисекунды. Кто-либо знает, существует ли таймер в Схеме с лучшим разрешением?

23
задан Eli Barzilay 8 June 2010 в 02:09
поделиться

1 ответ

current-milliseconds - это функция, которая возвращает текущий счетчик миллисекунд из системы, но он может уменьшиться. current-excact-milliseconds аналогичен, но возвращает гарантированно увеличивающееся число с плавающей запятой.

На этой странице также есть множество аналогичных функций, но если все, что вам нужно, это установить время для определенной функции, просто используйте ( time expr ), и она будет распечатать время, затраченное на оценку выражения.

Еще одна важная вещь - профилировщик , на случай, если вам понадобится более подробный анализ вашего кода.

22
ответ дан 29 November 2019 в 02:46
поделиться