(profile-reset)
Команда profile-info выводит в диалоговое окно системы всю собранную профилирующую информацию о работе конструкторов или функций, определенных пользователем. Собранная информация отображается в таблице из шести столбцов. Описание содержания всех столбцов приведено ниже.
Ø Имя профилируемого конструктора или определенной пользователем функции.
Ø Количество вызовов профилируемого конструктора или определенной пользователем функции.
Ø Продолжительность выполнения конструктора или определенной пользователем функции.
Ø Процент времени, потраченного на выполнение конструктора или определенной пользователем функции, относительно общего времени профилирования,
Ø Продолжительность выполнения конструктора или определенной пользователем функции и выполнения всех внутренних вызовов конструкторов или функций.
Ø Процент времени, потраченного на выполнение конструктора или определенной пользователем функции и выполнения всех внутренних вызовов конструкторов или функций, относительно общего времени профилирования.
|
|
Определение 16.77. Команда profile-info
(profile-info)
Команда profile предназначена для включения/выключения профилирования конструкторов или определенных пользователем функций.
Определение 16.78. Команда profile
(profile constructs | user-functions | off)
При профилировании конструкторов система замеряет время выполнения определенных пользователем и родовых функций, а также обработчиков сообщений, вызванных из правой части правил. При профилировании функций замеряется время выполнения системных и определенных пользователем функций. Эти режимы не совместимы и устанавливаются с помощью ключей constructs и user-function соответственно. Для выключения режима профилирования используется ключ off.
Для примера профилирования очистите систему CLIPS и добавьте следующие определения:
Пример 16.9. Необходимые определения
(clear)
(deffacts start (fact 1))
(deffunction function-1 (?x)
(bind?y 1)
(loop-for-count (*?x 10)
(bind?y (+?y?x))))
(defrule rule-1
?f <- (fact?x&: (<?x 100))
=>
(function-1?x)
(retract?f)
(assert (fact (+?x 1))))
Для профилирования конструктора правил используйте следующую последовательность команд: