haskell / haskell/binary

Deserializing many TypeReps may lead to high residency

Ouverte
#143 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Haskell
Étoiles
120
Forks
70
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par retracer comment les valeurs TypeRep et TyCon sont désérialisées et comment les fingerprints les identifient ; l’issue ne mentionne ni fichiers ni tests. Étudiez les options de tables faibles pour partager les valeurs désérialisées récursivement, puis définissez des mesures montrant une réduction de l’occupation mémoire lorsque de nombreuses valeurs Dynamic sont chargées, tout en préservant le comportement de désérialisation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
haskell
Domaine
performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.