[Java] Avro - Experiment with "compiled" consumer delegates for performance.
- Lenguaje dominante
- Java
- Estrellas
- 94
- Forks
- 152
- Merge medio
- 3 d 16 h
- PR fusionados (30 d)
- 11
Descripción
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.*
Guía de contribución
Línea de trabajo
Comienza localizando los consumers basados en delegados y la ruta del consumer codificada manualmente que se describen en el issue. Compara su rendimiento y, después, evalúa si están justificadas las clases personalizadas generadas por un converter; se considera terminado cuando haya una comparación documentada y una decisión de implementación acotada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100