Проблемы производительности CLIPS - PullRequest
1 голос
/ 09 января 2020

Я строю экспертную систему, встраивая CLIPS 6.31 в приложение C ++, работающее с потоком данных среднего размера и требующее почти * реального времени ответа (т.е. общее время анализа не должно превышать 40 миллисекунд). К настоящему времени я передал около 430 фактов в «точку входа» механизма логического вывода (база знаний состоит из 8 правил, большинство из которых запускаются на каждой итерации, что достигается с помощью EnvRefresh(...)) в al oop, что в результате время отклика колебалось между 600 и 700 мс, что намного больше, чем необходимо. Есть ли способ ускорить вывод? Насколько «тяжелыми» могут быть шаблоны правил, если ответ в реальном времени важен? Подходит ли CLIPS для такого приложения реального времени или его следует заменить на CLIPS / R2 или что-то подобное?

1 Ответ

4 голосов
/ 09 января 2020

Трудно анализировать проблемы с производительностью, используя только общее описание кода. Вот два вопроса о переполнении стека, иллюстрирующие правила, которые можно переписать для повышения производительности:

Как оптимизировать сопоставление шаблонов между различными шаблонными фактами в CLIPS

CLIPS огромное использование памяти

Вы также можете скомпилировать свою программу на C ++ с включенным профилированием, чтобы увидеть, на что тратится время. Использование команды refre sh в качестве части обычного выполнения поднимает несколько красных флажков.

Последнее, что я слышал, CLIPS / R2 больше не доступен, отчасти из-за повышения производительности в CLIPS 6.3.

...