Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Андрей Бушман от 10-09-2015, 13:14:09

Название: Функции обработки времени в AutoLISP\Visual LISP
Отправлено: Андрей Бушман от 10-09-2015, 13:14:09
В справочнике "AutoLISP и Visual LISP в среде AutoCAD" безуспешно пытаюсь найти функции, позволяющие засечь время выполнения кода. Поиск в Интернете по фразам "lisp засечь время", "lisp время выполнения" и "autolisp time calculation" результатов пока так же не дал.

Есть ли в автокадовском лиспе такие функции? Мне нужны функции получения текущего времени, а так же функция, вычитающая одно время из другого, чтобы засечь время работы.
Извините, вам запрещён просмотр содержимого спойлеров.

Очень не хочется городить лишний огород с предварительной загрузкой через _.NETLOAD управляемой библиотеки, предоставляющей такие функции.
Название: Re: Функции обработки времени в AutoLISP\Visual LISP
Отправлено: Александр Ривилис от 10-09-2015, 13:29:12
Подойдёт: http://autolisp.ru/wp-content/uploads/2009/09/benchmark.lsp ?
Название: Re: Функции обработки времени в AutoLISP\Visual LISP
Отправлено: Александр Ривилис от 10-09-2015, 13:35:35
Еще вариант отсюда: http://www.cadtutor.net/forum/showthread.php?55931&p=378976&viewfull=1#post378976
Код - Auto/Visual Lisp [Выбрать]
  1. (setq BenchStart nil)
  2. (defun BenchTime (start / millisecs)
  3.   (if start
  4.     (setq BenchStart (getvar "Millisecs"))
  5.     (if BenchStart
  6.       (progn
  7.         (princ (strcat "\nElapsed: " (rtos (* 0.001 (- (getvar "Millisecs") BenchStart)))))
  8.         (setq BenchStart nil)
  9.       )
  10.       (princ "\nThere's an error. The bechmark wasn't started yet.")
  11.     )
  12.   )
  13.   t
  14. )

Цитировать
Command: (progn (BenchTime t) <здесь твоя функция> (BenchTime nil))
Elapsed: <время в секундах>
Название: Re: Функции обработки времени в AutoLISP\Visual LISP
Отправлено: Николай Полещук от 10-09-2015, 13:58:54
Можно также работать через системные переменные CDATE, TD*.