Профилирование и отладка
CLIPS предоставляет несколько специальных команд, предназначенных для профилирования и отладки ваших программ (табл. 16.14). Таблица 16.14. Команды профилирования и отладки
Команды set-profile-percent-threshold и get-profile-percent-threshold предназначены для установки и проверки текущего состояния процента порогового времени профилирования. Это значение является минимальным пороговым временем выполнения конструктора или функции, которое будет отображено с помощью команды profile-info. По умолчанию значение равно 0. Таким образом, поведением системы по умолчанию является вывод всей профилирующей информации. Определение 16.75. Команды set-profile-percent-threshold и get-profile-percent-threshold (set-profile-percent-threshold <целочисленное-выражение>) (get-profile-percent-threshold) С помощью команды profile-reset можно очистить всю накопленную профилирующую информацию. Определение 16.76. Команда profile-reset (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)))) Для профилирования конструктора правил используйте следующую последовательность команд:
|