Что возвращает функция времени SBCL? - PullRequest
4 голосов
/ 12 ноября 2009

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

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

Ответы [ 2 ]

8 голосов
/ 12 ноября 2009

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

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

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

1 голос
/ 12 ноября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...