Spring集成表达式太慢

Spring集成表达式太慢,spring,spring-integration,Spring,Spring Integration,我对Spring集成有一个问题。 我有一个具有以下表达式的筛选器: <int:filter input-channel="inputTaskChannel" expression="!headers[auditTask].empty and headers[Task].get(0).equals('N') and headers[sendTask].equals('N')" discard-channel="taskErrorChannel" output-channel="sendTas

我对Spring集成有一个问题。 我有一个具有以下表达式的筛选器:

<int:filter input-channel="inputTaskChannel" expression="!headers[auditTask].empty and headers[Task].get(0).equals('N') and headers[sendTask].equals('N')" discard-channel="taskErrorChannel" output-channel="sendTaskChannel"/>


我的问题是表达式需要750毫秒来计算表达式。我认为这是计算表达式的很多时间。有什么建议吗?

您如何衡量表达式计算所用的时间?您是否将其与更简单的表达式或筛选器bean进行比较?同样,为了以防万一,您可以将许多消息发送到此筛选器,并检查所有消息的计算时间是否相同,或者第一条消息的计算时间是否高。@Alban。我在前后都贴上了时间戳。我发送10、100、1000条消息,时间总是一样的,大约750ms。您使用的是哪种spring版本?如果您使用的是较新的版本,则可以编译该表达式,这将使其速度更快。但是,与普通方法调用相比,计算表达式的速度通常较慢。存在使用反射的EL解析en调用,所有这些调用都会增加执行所需的时间。请参阅
-Dspring.expression.compiler.mode=mixed
(需要Spring Framework 4.1)。