2009-11-12 2 views
4

Я пытаюсь выполнить статистическую функцию заказа, введенную в SBCL. Я нашел эту функцию синхронизации: (форма времени). Однако я не уверен, что он возвращает. Кажется, что это большое число, но я не могу найти документацию, указывающую, является ли возвращаемое значение миллисекундами, наносекундами, системным временем и т. Д.Что возвращает функция времени SBCL?

Кто-нибудь знает?

ответ

8

Значение TIME macro указано как «проходной лоток» значения того, что он запускает. Таким образом, это похоже на PRINT (т. Е. Вы можете наматывать TIME или PRINT на что угодно, не меняя внутренний поток данных - они действительно добавляют материал к выходу). (time (foo)) возвращает то, что возвращается (foo).

В спецификации не содержится никаких жестких требований относительно того, какая информация печатается, эта часть является специфичной для реализации.

В зависимости от ваших требований вам может быть лучше искать пакет профилирования (у SBCL есть пара, я считаю). В противном случае вам может понравиться GET-INTERNAL-RUN-TIME, GET-INTERNAL-REAL-TIME и INTERNAL-TIME-UNITS-PER-SECOND.

1

Используйте GET-INTERNAL-REAL-TIME и INTERNAL-TIME-UNITS-PER-SECOND, чтобы узнать программно, сколько времени ваш код выполняет для выполнения.

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