我以前曾在博客中介绍过我们在下一个Camel 3.1版本中所做的优化

  • 博客第1部分
  • 博客第2部分

今天,我想简短介绍一下我们已经完成的最新开发,因为我们准备在本周末或下半年准备好构建和发布Camel 3.1。

从第2部分开始,我们设法在路由过程中将对象分配减少了10%。

我们还继续通过通过源代码生成的配置程序(直接执行Java方法调用与使用Java bean反射)配置Camel的工作。 现在,所有组件,数据格式,语言和EIP模式都已完成。 仅在更高级的用例中,配置基于动态配置的嵌套复杂对象,才在源代码configure和Camel fallback使用反射的范围之外。

我们还找到了一种优化EIP上的属性占位符分辨率的方法,以避免使用源代码生成的配置程序,这意味着在类路径上要加载的类减少了200个,并且节省了大约90kb的内存。 这很好,因为这些类和内存仅在Camel引导期间使用,现在它们都消失了。

我们还设法进一步对骆驼核心进行模块化,因此JAXB和XML路由是可选的。

即使对于XML路由(不是Spring或Blueprint,因为它们具有自己的DOM XML解析器),我们也创建了一个替代的,快速且轻量级的基于pull的解析器。 camel-example-main-xml正在使用它,并且通过比较JAXB和Camel XML,然后使其速度提高了6倍(大约1500毫秒和250毫秒),并且比JAXB少加载700个类。

但是,对于非XML用户(例如,使用Java DSL),则可以完全不在类路径上使用JAXB,并且您可以使用小型Camel应用程序,例如带有以下依赖关系树的camel-example-main-tiny(
Camel JAR粗体; 该示例使用Bean和计时器组件)

[INFO] org.apache.camel.example:camel-example-main-tiny:jar:3.1.0-SNAPSHOT

[INFO] +-org.apache.camel:camel-main:jar:3.1.0-SNAPSHOT:compile

[INFO] |

+-org.apache.camel:camel-api:jar:3.1.0-SNAPSHOT:compile

[INFO] |

+-org.apache.camel:camel-base:jar:3.1.0-SNAPSHOT:compile

[INFO] |

+-org.apache.camel:camel-core-engine:jar:3.1.0-SNAPSHOT:compile

[INFO] |

+-org.apache.camel:camel-management-api:jar:3.1.0-SNAPSHOT:compile

[INFO] |

+-org.apache.camel:camel-support:jar:3.1.0-SNAPSHOT:compile

[INFO] |

\-org.apache.camel:camel-util:jar:3.1.0-SNAPSHOT:compile

[INFO] +-org.apache.camel:camel-bean:jar:3.1.0-SNAPSHOT:compile

[INFO] +-org.apache.camel:camel-timer:jar:3.1.0-SNAPSHOT:compile

[INFO] +-org.apache.logging.log4j:log4j-api:jar:2.13.0:compile

[INFO] +-ch.qos.logback:logback-core:jar:1.2.3:compile

[INFO] \-ch.qos.logback:logback-classic:jar:1.2.3:compile

[INFO] \-org.slf4j:slf4j-api:jar:1.7.30:compile

我使用探查器运行了该示例,并将其配置为使用10MB作为最大堆(-Xmx10M),并且摘要显示可以轻松完成此操作。 堆中使用了大约5mb。


默认情况下,还可以进行其他一些较小的改进来避免使用基于Camel 2.x的类型转换器扫描。 这样可以减少对类路径的扫描。

好了,现在该结束本系列博客并完成最后几篇文章的时间,以便我们发布Camel 3.1。

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

Apache Camel 3.1 –更多骆驼核心优化(第3部分)相关推荐

  1. Apache Camel 3.1 –更多骆驼核心优化(第2部分)

    我以前曾在博客中介绍我们在下一个Camel 3.1版本(第1部分)中所做的优化 . 今天,我想发布大约4周后的最新状态更新. 我们集中在三个方面优化骆驼核心: 不必要的对象分配 不必要的方法调用 提高 ...

  2. apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第2部分)

    apache.camel 我以前曾在博客中介绍我们在下一个Camel 3.1版本(第1部分)中所做的优化 . 今天,我想发布大约4周后的状态更新. 我们集中在三个方面优化骆驼核心: 不必要的对象分配 ...

  3. apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第3部分)

    apache.camel 我以前曾在博客中介绍过我们在下一个Camel 3.1版本中所做的优化 博客第1部分 博客第2部分 今天,我想简要介绍一下我们已经完成的最新开发,因为我们准备在本周末或下半年准 ...

  4. apache.camel_Apache Camel 3.1 –即将推出更多骆驼核心优化

    apache.camel 希望一切都很好,您可以安全进入2020年. Camel团队已经在忙于开发下一个Camel 3.1版本. 目标之一是继续优化骆驼核心,这一次我们花了一些时间来寻找路由引擎中的一 ...

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

    希望一切都很好,您可以安全进入2020年. Camel团队已经在忙于开发下一个Camel 3.1版本. 目标之一是继续优化骆驼核心,这一次我们花了一些时间来寻找路由引擎中的一些热点. 我们所研究的方面 ...

  6. Apache Camel入门

    在先前的博文中,我们了解了企业集成模式(EIP). 现在,在这篇文章中,我们将研究实现这些模式的Apache Camel框架. 关于骆驼: Apache Camel是一个开放源代码项目,已有将近5年的 ...

  7. Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)

    Camel团队目前正在忙于Apache Camel 3的开发.已经完成了许多工作,到目前为止,我们已经发布了3个里程碑版本. 下一个里程碑版本4具有一些出色的创新功能,这些功能我将在接下来的几个月中发 ...

  8. 骆驼(camel)命名法_Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)

    骆驼(camel)命名法 Camel团队目前正在忙于Apache Camel 3的开发.已经完成了许多工作,到目前为止,我们已经发布了3个里程碑版本. 下一个里程碑版本4具有一些出色的新创新功能,这些 ...

  9. Apache Camel 2.14中的更多指标

    Apache Camel 2.14将于本月晚些时候发布. 由于正在解决某些Apache基础结构问题,因此存在一些问题. 这篇博客文章讨论的是我们添加到此版本中的新功能之一. 感谢Lauri Kimme ...

最新文章

  1. Java常量池解析与字符串intern简介
  2. Maven中如何禁止插件(plugin)在子模块(module)上执行
  3. 黑马程序员_java异常处理机制
  4. exists hive中如何使用_HIVE使用基础
  5. java多数据源事务管理_Spring中实现多数据源事务管理 - CSDN博客
  6. android客户端和服务器实现传图片和文件
  7. 在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击
  8. Linux—图解rsyslog及通过 Loganalyzer实现集中式日志管控
  9. day③:函数式编程
  10. java的实例变量_JAVA语言中的实例变量
  11. 基于C语言+sqlite3的FTP爬虫和搜索引擎系统
  12. MySQL子查询,多表查询
  13. 各种串口助手工具分享
  14. I.Algorithm Choosing Mushrooms
  15. 最美不过少年时,红尘走马,步步相随
  16. 网络层IP协议—ipv4
  17. Linux – cp: omitting directory 复制文件失败
  18. 【FPGA工程篇】图像采集及显示(一)
  19. 人大金仓数据库的归档日志
  20. ZERO-SHOT:多聚焦融合

热门文章

  1. P3470 [POI2008]BBB-BBB【线段树,贪心】
  2. 5、oracle下数据完整性约束
  3. 36、JAVA_WEB开发基础之监听器
  4. Windows 通过 SecureCRT 8.x 上传文件到Linux服务器
  5. 服务器性能指标(二)——CPU利用率分析及问题排查
  6. Oracle入门(十一)之SQL
  7. mvc.net分页查询案例——PagedList
  8. SpringSecurity授权(访问控制)
  9. 重写(override / overwrite)
  10. 2020蓝桥杯省赛---java---A---4(七段码)