Deserializing many TypeReps may lead to high residency
- Lingua principale
- Haskell
- Stelle
- 120
- Fork
- 70
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Deserialized `TypeRep`s don't share any structure with each other, which can potentially waste a lot of space. For example, if I fill a giant `Set` with deserialized `Dynamic` values, the lion's share of the space could be taken up by the `TypeRep`s. One potential fix would be to maintain weak tables holding deserialized `TyCon`s and `TypeRep`s. We could use one of type `Map Fingerprint (exists a. Weak (TypeRep a))` and one of type `Map Fingerprint (Weak TyCon)`, but other sorts of maps would probably be faster. When a (perhaps recursively) deserialized `TyCon` or `TypeRep` matches one stored in the table, it would be thrown away in favor of the stored one.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia tracciando come vengono deserializzati i valori TypeRep e TyCon e come i fingerprint li identificano; l’issue non indica file o test. Esamina le opzioni delle tabelle deboli per condividere i valori deserializzati ricorsivamente, quindi definisci misurazioni che mostrino una riduzione dell’occupazione di memoria quando vengono caricati molti valori Dynamic, preservando al contempo il comportamento della deserializzazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- haskell
- Ambito
- performance
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100