[Java] Avro - Experiment with "compiled" consumer delegates for performance.
- Langage dominant
- Java
- Étoiles
- 94
- Forks
- 152
- Merge moyen
- 3 j 16 h
- PR mergées (30 j)
- 11
Description
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.*
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser les consumers basés sur des delegates et le chemin du consumer codé manuellement décrits dans l’issue. Comparez leurs performances, puis déterminez si des classes personnalisées générées par un converter sont justifiées ; le travail est terminé lorsqu’une comparaison documentée et une décision d’implémentation délimitée sont disponibles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- backend, performance
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100