Hi,

I have one correction to do: the difference is between Apache Camel 3.4.3 + 
Spring Boot 2.3.2 vs Apache Camel 2.24.2 with Spring Boot 2.1.8.

Thank you

-----Original Message-----
From: Corneliu Chitic
Sent: Thursday, September 17, 2020 03:32
To: users@camel.apache.org
Subject: Performance regression with bean and ognl expressions in Simple 
language version 3.4.x

Hi,

we've identified a performance regression while running same code with Apache 
Camel 3.4.3 + Spring Boot vs Apache Camel 2.24.2 with Spring framework 5.1.9. 
We've migrated one application to this LTS version and we face this impact.
The main bottleneck is the synchronized block from: 
org.apache.camel.impl.engine.AbstractCamelContext.resolveLanguage(String). The 
root cause is the time spent to validate Simple expressions when using bean 
language (${bean:name?method=something}) or OGNL like calls to POJO methods 
(${exchangeProperty.pojo.method}). According to the stack traces the new 
version spends time to allocate the bean + full setup of it. Blocking times are 
quite high (average 100ms, max could be ~300ms) and as the number of parallel 
processing threads increases it goes up steadily.

Has anything changed in version 3.x (or more precisely 3.4.x)? The changelogs 
and upgrade tutorial didn't suggested anything in this area.
Is there any configuration flag that would allow us to switch back to version 
2.x mode of working for this functionality?

We have run repeated trials and have consistent results with both versions; we 
have a project setup to demo this and also some Java Flight recordings for 
comparison. I don't think I can attach anything to this maillist, please let me 
know how I can provide any additional input if needed.

Thank you, Corneliu
This email is subject to Computaris email terms of use: 
https://www.computaris.com/email-terms-use/

Reply via email to