0

Windows Workflow Foundation 活动的速度有多快?我知道这是一个无法回答的问题,所以让我给你一些背景知识:

该问题需要使用某种类型的业务规则引擎来解决。一次可能有多达 300 条规则需要实施。有些相关,有些不相关。

我们使用了一个便宜的 BRE ( rulelab.net ),它声称它每秒可以运行超过 1000 条规则,而且它似乎运行得相当快,尽管我们只有少数规则。

我观看并使用了在工作流中处理数据,并且只有一个 if 语句,它似乎运行得很慢。

总而言之,我对 Microsoft WF 的性能不是很满意,使用传统的 BRE 会更好吗?有什么想法吗?

4

3 回答 3

5

Windows Workflow Foundation 对于许多应用程序来说已经足够快了。在一个简单的 noop 活动的测试中,它每秒执行超过 350K 的操作。当然,您的应用程序将运行实际的业务逻辑,这将花费更长的时间,但显然值得评估。

有关详细信息,请参阅Windows Workflow Foundation 4 性能

于 2012-05-18T15:01:03.113 回答
3

您的“每秒可以运行超过 1000 条规则”的示例有点奇怪。正常的业务规则引擎在吹嘘其性能时会说“每个时间间隔的事实对象数”。这是因为大多数时候(我在这个行业已经有很长一段时间了)一个系统接收到一个事实对象的集合(一百万或一个),并且需要过滤掉那些没有通过一个或几个规则。基于 RETE 的引擎会因为明显的原因而变慢 - 这就是为什么大多数时候您不需要 RETE 算法。但是即使以您的示例为例,对于可靠的 BRE 来说,这个数字也太低了。通常,您希望引擎每秒执行至少 50 万次规则评估,即使它不缓存规则并且必须在每次迭代时编译每个规则,前提是每个规则都不在外部执行任何操作并且不包含任何昂贵的计算。我不知道 rulelab.net 的内部结构,但速度如此之慢意味着它不会将其规则编译为本机对象,或者它以非常糟糕的方式评估其规则。

于 2012-05-20T15:26:41.727 回答
0

从您的问题来看,您根本不清楚为什么需要工作流/BRE。工作流引擎和规则引擎旨在回答不同的问题/挑战。首先是从业务角度了解您的目标以及您要实现的目标。为什么需要工作流和/或业务规则引擎?您尝试使用 Workflow 和/或 BRE 回答的挑战/需求/要求是什么?从你的问题来看,根本不清楚。
我有一篇文章向您展示您选择一个而不是另一个的真正原因和时间。或者有时你最终会同时使用它们。关键是您要求比较两种不同事物的性能。

于 2015-06-10T06:28:50.833 回答