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 摘要。