grpc / grpc/grpc-java

Excess garbage in Metadata

Offen
#2,166 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
performance
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

Metadata today is a Hashmap of ArrayLists, and each arraylist has an object array. This creates a lot of garbage since Metadata objects are short lived.

Some ideas on how to improve the situation:
- Recycle the objects
- Store headers as a flat array of an initial size, and swap to using a full map if slow. (and avoid Strings when possible)

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die Metadata-Implementierung zu lokalisieren und die durch ihre HashMap aus ArrayLists und die Object-Arrays pro Array verursachten Allokationen zu messen. Vergleiche die vorgeschlagenen Recycling- und Flat-Array-Ansätze, einschließlich des Fallbacks auf eine vollständige Map. Als abgeschlossen sollte ein klar ausgewähltes Design gelten, das kurzlebigen Garbage reduziert, obwohl der Issue kein Ziel und keinen Test zur Bestätigung der Verbesserung bereitstellt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
performance
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.