Apache Camel 3.1 –更多骆驼核心优化(第3部分)
我以前曾在博客中介紹過我們在下一個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部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓4蓝牙播放其他设备音乐(安卓4蓝牙)
- 下一篇: jvm jinfo 参数_jinfo:J