haskell / haskell/binary

optimize small Getters

Ouverte
#124 3 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

After some profiling, i came to the conclusion that current running logic is too complex, in order to support `bytesRead`, we have two `Decoder` type, the overhead of `runGetIncremental` is noticeable when the getter is small(around 100ns compare to cereal on my machine).

This gives binary a disadvantage in various benchmarks, since lots of benchmark just focus on a single combinator, the overhead of running it render this kind of benchmarks meaningless.

There're cases we do need running small getters, but i haven't really need `bytesRead` yet. So let's find a way to improve `bytesRead`, or remove it ?

Guide de contribution

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

Piste de recherche

Commencez par examiner les deux types Decoder et le chemin runGetIncremental décrit dans l’issue, puis reproduisez la surcharge signalée pour les petits getters avec les benchmarks existants. Comparez l’exigence bytesRead aux cas qui n’en ont pas besoin et déterminez si elle peut être améliorée ou supprimée. La tâche est terminée lorsque la surcharge des petits getters est réduite sans perdre le comportement requis de bytesRead.

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

Évaluation

Stack technique
haskell
Domaine
backend
Type d'issue
Refactorisation
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.