apache.camel_Apache Camel 3.1 –即将推出更多骆驼核心优化
apache.camel
希望一切都很好,您可以安全進(jìn)入2020年。
Camel團(tuán)隊(duì)已經(jīng)在忙于開(kāi)發(fā)下一個(gè)Camel 3.1版本。 目標(biāo)之一是繼續(xù)優(yōu)化駱駝核心,這一次我們花了一些時(shí)間來(lái)尋找路由引擎中的一些熱點(diǎn)。
我們所研究的方面之一也是在Camel路由的每個(gè)消息中發(fā)生的對(duì)象分配。 JVM本身擅長(zhǎng)分配對(duì)象,并在不再使用對(duì)象時(shí)對(duì)其進(jìn)行垃圾回收。 但是,如果您可以識(shí)別路由中每個(gè)EIP不必要的對(duì)象,則還有改進(jìn)的余地。
因此,今天我通過(guò)運(yùn)行一條基本的駱駝路線找到了其中幾個(gè)
來(lái)自(timer:foo?period = 1“)
.to(“ log:foo”);
基本上每秒路由1000條消息。 并將每個(gè)消息打印到日志中。
對(duì)象分配中最大的罪魁禍?zhǔn)字皇荝eact式執(zhí)行器的人為記錄,該執(zhí)行器以TRACE級(jí)別記錄。 因此,通過(guò)避免這種情況,我們可以減少大量分配,并減少用于記錄消息的字符串構(gòu)建。
我們優(yōu)化的其他方面是EIP(最常用的EIP),它現(xiàn)在在啟動(dòng)時(shí)更加智能,可以避免創(chuàng)建不必要的緩存。 這與我們現(xiàn)在懶惰地在Camel中創(chuàng)建很少使用的某些功能的區(qū)域一起使用,否則這些功能也會(huì)設(shè)置和創(chuàng)建一些緩存。
我們還確定了Camel 3工作的一部分,因此LRUCache并未早于預(yù)熱,這意味著Camel的啟動(dòng)會(huì)比其他方式慢一些。 因此,通過(guò)將此預(yù)熱移至較早的階段,Camel可以通過(guò)在啟動(dòng)時(shí)執(zhí)行并發(fā)工作直到LRUCache被預(yù)熱(其咖啡因緩存需要此操作)來(lái)更快地啟動(dòng)。
還對(duì)日志組件進(jìn)行了優(yōu)化,以減少其構(gòu)建日志消息的對(duì)象分配。
因此,總的來(lái)說(shuō),這是美好的一天,如果我們將Camel 3.0.0與3.1.0-SNAPSHOT的啟動(dòng)與上述Camel路線進(jìn)行比較,那么每秒的對(duì)象分配將大大減少(這要?dú)w功于Profiler的YourKit)。
該配置文件指出,在Camel 3.0.0中,Camel每秒大約可大致生成22.000個(gè)對(duì)象(路由1000條消息)。 在Camel 3.1中,每秒的對(duì)象減少到了約6.000。 這太棒了,幾乎減少了4倍。
翻譯自: https://www.javacodegeeks.com/2020/01/apache-camel-3-1-more-camel-core-optimizations-coming.html
apache.camel
總結(jié)
以上是生活随笔為你收集整理的apache.camel_Apache Camel 3.1 –即将推出更多骆驼核心优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 红米3s开机充电没反应
- 下一篇: 有范是什么意思 有范儿是什么意思