Deserializing many TypeReps may lead to high residency
- 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