Apache Camel 3.1 –即将推出更多骆驼核心优化

希望一切都很好,您可以安全进入2020年。

Camel团队已经在忙于开发下一个Camel 3.1版本。 目标之一是继续优化骆驼核心,这一次我们花了一些时间来寻找路由引擎中的一些热点。

我们所研究的方面之一也是在Camel路由的每个消息中发生的对象分配。 JVM本身擅长分配对象,并在不再使用对象时对其进行垃圾回收。 但是,如果可以确定路由中每个EIP不需要的对象数量,则仍有改进的余地。

所以今天我通过运行一条基本的骆驼路线找到了其中的几个

来自(timer:foo?period = 1”)

.to(“ log:foo”);

基本上每秒路由1000条消息。 并将每个消息打印到日志中。

对象分配中最大的罪魁祸首之一是反应式执行器的人为记录,该执行器以TRACE级别进行记录。 因此,通过避免这种情况,我们可以减少大量分配,并减少用于记录消息的字符串构建。

我们优化的其他方面是EIP(最常用的EIP),它现在在启动时更加智能,可以避免创建不必要的缓存。 这与我们现在懒惰地在Camel中创建很少使用的某些功能的区域一起使用,否则这些功能也会设置和创建一些缓存。

我们还确定这是Camel 3工作的一部分,因此LRUCache并未早于预热,这意味着Camel的启动会比其他方式慢一些。 因此,通过将此预热移至较早的阶段,Camel可以通过在启动时执行并发工作直到LRUCache被预热(其咖啡因缓存需要此操作)来更快地启动。

还对日志组件进行了优化,以减少其构成日志消息的对象分配。

因此,总的来说,这是美好的一天,如果我们将Camel 3.0.0与3.1.0-SNAPSHOT的启动与上述Camel路线进行比较,那么每秒的对象分配将大大减少(这要归功于Profiler的YourKit)。

该配置文件说,在Camel 3.0.0中,Camel每秒大约可大致生成22.000个对象(路由1000条消息)。 而在Camel 3.1中,每秒已减少约6.000个对象。 这真是太棒了,几乎减少了4倍。

翻译自: https://www.javacodegeeks.com/2020/01/apache-camel-3-1-more-camel-core-optimizations-coming.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值