optimize small Getters
- Lenguaje dominante
- Haskell
- Estrellas
- 120
- Forks
- 70
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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 ?
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Start by examining the two Decoder types and the runGetIncremental path described in the issue, then reproduce the reported small-getter overhead with the existing benchmarks. Compare the bytesRead requirement with the cases that do not need it and determine whether it can be improved or removed. Done means reducing the small-getter overhead without losing required bytesRead behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- haskell
- Área
- backend
- Tipo de issue
- Refactorización
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100