CLIPS 性能问题
CLIPS performance concerns
我正在构建一个专家系统,方法是将 CLIPS 6.31 嵌入到 C++ 应用程序中,该应用程序处理中等规模的数据流并需要 几乎实时 响应(即总计分析时间不应超过 40 毫秒)。到目前为止,我在循环中向推理引擎的 "entry point" 提供了大约 430 个事实(知识库由 8 条规则组成,其中大部分在每次迭代时触发,这是通过 EnvRefresh(...)
实现的)这导致响应时间在 600 到 700 毫秒之间波动,这比需要的时间长得多。有什么办法可以加快推理速度吗?如果实时响应很重要,规则模式如何 "heavy"? CLIPS 完全适合这样的实时应用程序还是应该用 CLIPS/R2 或类似的东西代替?
很难仅通过对代码的一般描述来分析性能问题。以下是 Stack Overflow 上的两个问题,说明可以重写以提高性能的规则:
您还可以在启用分析的情况下编译 C++ 程序,以查看时间花在了哪里。在正常执行过程中使用刷新命令会引发一些危险信号。
最后我听说,CLIPS/R2 不再可用,部分原因是 CLIPS 6.3 中的性能改进。
我正在构建一个专家系统,方法是将 CLIPS 6.31 嵌入到 C++ 应用程序中,该应用程序处理中等规模的数据流并需要 几乎实时 响应(即总计分析时间不应超过 40 毫秒)。到目前为止,我在循环中向推理引擎的 "entry point" 提供了大约 430 个事实(知识库由 8 条规则组成,其中大部分在每次迭代时触发,这是通过 EnvRefresh(...)
实现的)这导致响应时间在 600 到 700 毫秒之间波动,这比需要的时间长得多。有什么办法可以加快推理速度吗?如果实时响应很重要,规则模式如何 "heavy"? CLIPS 完全适合这样的实时应用程序还是应该用 CLIPS/R2 或类似的东西代替?
很难仅通过对代码的一般描述来分析性能问题。以下是 Stack Overflow 上的两个问题,说明可以重写以提高性能的规则:
您还可以在启用分析的情况下编译 C++ 程序,以查看时间花在了哪里。在正常执行过程中使用刷新命令会引发一些危险信号。
最后我听说,CLIPS/R2 不再可用,部分原因是 CLIPS 6.3 中的性能改进。