grpc / grpc/grpc-java

Excess garbage in Metadata

Aperta
#2,166 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub
performance
Lingua principale
Java
Stelle
12.1k
Fork
4k
Merge medio
2g 17h
PR unite (30g)
37

Descrizione

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)

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia individuando l’implementazione di Metadata e misurando l’allocazione causata dalla sua HashMap di ArrayLists e dagli array di oggetti per ogni array. Confronta gli approcci proposti di riciclo e flat-array, incluso il fallback a una mappa completa. Il lavoro dovrebbe considerarsi concluso quando sarà stato scelto chiaramente un design che riduca i rifiuti di breve durata, anche se l’issue non fornisce alcun obiettivo o test per confermare il miglioramento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
performance
Tipo di issue
Refactoring
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.