apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第3部分)
apache.camel
我以前曾在博客中介紹過我們?cè)谙乱粋€(gè)Camel 3.1版本中所做的優(yōu)化
- 博客第1部分
- 博客第2部分
今天,我想簡(jiǎn)要介紹一下我們已經(jīng)完成的最新開發(fā),因?yàn)槲覀儨?zhǔn)備在本周末或下半年準(zhǔn)備好構(gòu)建和發(fā)布Camel 3.1。
從第2部分開始,我們?cè)O(shè)法在路由過程中將對(duì)象分配減少了10%。
我們還繼續(xù)通過通過源代碼生成的配置程序(直接執(zhí)行Java方法調(diào)用與使用Java bean反射)配置Camel的工作。 現(xiàn)在,所有組件,數(shù)據(jù)格式,語言和EIP模式都已完成。 只有在更高級(jí)的用例中,配置基于動(dòng)態(tài)配置的嵌套復(fù)雜對(duì)象,才在源代碼configure和Camel fallback的范圍之外,以使用反射。
我們還找到了一種優(yōu)化EIP上的屬性占位符分辨率的方法,從而避免使用源代碼生成的配置程序,這意味著類路徑上要加載的類減少了200個(gè),并且節(jié)省了大約90kb的內(nèi)存。 這很棒,因?yàn)檫@些類和內(nèi)存僅在Camel引導(dǎo)期間使用,現(xiàn)在它們都消失了。
我們還設(shè)法進(jìn)一步模塊化了駱駝核心,因此JAXB和XML路由是可選的。
即使對(duì)于XML路由(不是Spring或Blueprint,因?yàn)樗鼈兙哂凶约旱腄OM XML解析器),我們也創(chuàng)建了一個(gè)替代的,快速且輕量級(jí)的基于pull的解析器。 camel-example-main-xml正在使用它,并且通過比較JAXB與Camel XML,然后使其速度提高了6倍(約1500毫秒與250毫秒),并且比JAXB少加載700個(gè)類。
但是,對(duì)于非XML用戶(例如,使用Java DSL),則可以完全避免在類路徑上使用JAXB,并且您可以使用小型Camel應(yīng)用程序,例如帶有以下依賴關(guān)系樹的camel-example-main-tiny(
駱駝的JAR字體大膽; 該示例使用bean和計(jì)時(shí)器組件)
[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
我使用探查器運(yùn)行了該示例,并將其配置為使用10MB作為最大堆(-Xmx10M),并且摘要顯示了可以輕松完成此操作。 堆中使用了大約5mb。
默認(rèn)情況下,還可以進(jìn)行其他一些較小的改進(jìn)來避免使用基于Camel 2.x的類型轉(zhuǎn)換器掃描。 這樣可以減少對(duì)類路徑的掃描。
好了,現(xiàn)在該結(jié)束本系列博客并完成最后幾篇文章的時(shí)間,以便我們發(fā)布Camel 3.1。
翻譯自: https://www.javacodegeeks.com/2020/02/apache-camel-3-1-more-camel-core-optimizations-coming-part-3.html
apache.camel
總結(jié)
以上是生活随笔為你收集整理的apache.camel_Apache Camel 3.1 –更多骆驼核心优化(第3部分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕推出 ProArt PA169CDV
- 下一篇: X 公司员工揭秘马斯克管理风格:用 iP