[Java] Avro - Experiment with "compiled" consumer delegates for performance.
- Vorherrschende Sprache
- Java
- Sterne
- 94
- Forks
- 152
- Ø Merge
- 3 T. 16 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
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.*
Beitragsleitfaden
Rechercherichtung
Beginne damit, die im Issue beschriebenen delegate-basierten Consumer und den von Hand codierten Consumer-Pfad zu lokalisieren. Vergleiche ihre Performance und beurteile anschließend, ob von einem Converter generierte benutzerdefinierte Klassen gerechtfertigt sind; abgeschlossen ist die Aufgabe mit einem dokumentierten Vergleich und einer abgegrenzten Implementierungsentscheidung.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- backend, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100