apache / apache/arrow-java

[Java] Avro - Experiment with "compiled" consumer delegates for performance.

未關閉
#280 1 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
94
分支
152
平均合併
3 天 16 小時
30 天內合併 PR
11

描述

All consumers that rely on delegates (e.g. struct, composite, list, union, ...) require  megamorphic lookups which can't be inlined well by JIT.  

 

We should verify the performance different of a hand-coded consumer vs an existing delegate consumer

 

i.e. something like:

 

void consume(Decoder d) {

  ((IntConsumer)delegate).consume(d);

}

 

compared to the existing implementation.  It is expected we will see a decent amount of performance improvement from this approach.  If we do, we should add an option to converter to generate new custom classes on the fly, that mimic the hand-coded option.

 

**Reporter**: [Micah Kornfield](https://issues.apache.org/jira/browse/ARROW-6595) / @emkornfield

**Note**: *This issue was originally created as [ARROW-6595](https://issues.apache.org/jira/browse/ARROW-6595). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

貢獻指南

開啟貢獻指南

研究方向

首先定位 issue 中描述的基於 delegate 的 consumer 和手寫的 consumer 路徑。比較它們的效能,然後評估是否有必要使用 converter 產生的自訂類別;完成的標準是形成一份有文件記錄的比較結果,並作出範圍明確的實作決策。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
backend, performance
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
需要釐清
新手友好度
25/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。